質問: htmlやjsp内のformに書かれた内容をDAOを使ってデータベースにInsertする時に ``` "INSERT INTO MUTTER(NAME,TEL,GENDER)VALUES(?, ?, ?)" ``` このように表記しますが 「?」の前後にシングルクォーテーションマークが必要ないのはなぜでしょうか?
回答: 値をエスケープしたうえで(型によって自動で判断して)シングルクォーテーションも付与してくれる仕組みだからです。 prepareStatementの使用 > > MySQLの場合に文字列を使う場合は「'楽天(株)'」のようにシングルクオーテーション(')で括って記述していましたが、プリペアドステートメントの「setString」メソッドを使う場合には、自動的にデータベースで必要なエスケープ処理をしてくれます。 > > >