テーブル名を変数にしてpreparedStatementで挿入させる方法

@iwasaki 4,129views 更新:2013年11月26日
String sql = "select count(*) from ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, TABLE_NAME)
resultSet = stmt.executeQuery();

なんてことをしたい時があるかもしれませんが、このSQLだとMySQLでは

SELECT count(*) FROM  'hoge'

みたいなことになってエラーになります。(MySQLの場合、テーブル名はシングルクォーテーションではなくバッククオートで囲む必要が有るため)

preparedStatementはカラムの値のために使用するため、テーブル名には使えません。

http://stackoverflow.com/questions/11312155/how-to-use-a-tablename-variable-for-a-java-prepared-statement-insert

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません