htmlやjsp内のformに書かれた内容をDAOを使ってデータベースにInsertする時に
DAO
1"INSERT INTO MUTTER(NAME,TEL,GENDER)VALUES(?, ?, ?)"
このように表記しますが
「?」の前後にシングルクォーテーションマークが必要ないのはなぜでしょうか?

回答3件
あなたの回答
tips
プレビュー
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
0グッド
0クリップ
投稿2019/07/09 02:22
htmlやjsp内のformに書かれた内容をDAOを使ってデータベースにInsertする時に
DAO
1"INSERT INTO MUTTER(NAME,TEL,GENDER)VALUES(?, ?, ?)"
このように表記しますが
「?」の前後にシングルクォーテーションマークが必要ないのはなぜでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
値をエスケープしたうえで(型によって自動で判断して)シングルクォーテーションも付与してくれる仕組みだからです。
MySQLの場合に文字列を使う場合は「'楽天(株)'」のようにシングルクオーテーション(')で括って記述していましたが、プリペアドステートメントの「setString」メソッドを使う場合には、自動的にデータベースで必要なエスケープ処理をしてくれます。
投稿2019/07/09 02:28
編集2019/07/09 02:34総合スコア80888
0
SQLでは文字列はシングルクォートで囲むのが掟です。シングルクォートを使わないでもエラーが出なかったからといって喜んでいると、
SQL
1SELECT ... 2WHERE 文字型列 = '123' 3-- とすべきところ 4SELECT ... 5WHERE 文字型列 = 123 6-- とすると、文字型列にインデックスが設定してあっても、 7-- 何千万レードあるテーブルであろうと、文字型列を全件を数値型に 8-- 変換(内容が数値に変換できないと落ちる)してから 123 と比較して、 9-- 極端にパフォーマンスが落ちます。
システム開発でシングルクォートを省略したコードで納品したら、修正を要求する依頼元が多いのでは?
データベースは何でしょうか?同じSQLでもデータベースやそのバージョンによって方言が大きいです。
SQLの観点から Oracle Database, PostgreSQL, MySQL の特徴を整理しよう!
投稿2019/07/09 03:05
編集2019/07/09 03:39総合スコア16419
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。