PreparedStatement创建数据库


   
  PreparedStatement stmt  = null;
  
/**
* 创建数据库
* */
final String SQL_CREATE_DB = "CREATE DATABASE ?";
stmt = conn.prepareStatement(SQL_CREATE_DB);
stmt.setString(1, bean.getName());
stmt.execute();

如上面代码所示,这个样子创建数据库是会报错的.是不是这种非字符串的变量是不能用PreparedStatement来处理的.

java 数据库

道长用飘柔 10 years, 9 months ago

debug可以看到,实际的sql是 CREATE DATABASE 'TESTDB'; 这个语句直接放在mysql命令行上也是通不过的。 一般PreparedStatement都是 传 参数而不是 设置 数据库名或字段名。我试了setObject,setBytes都没戏。

Floss answered 10 years, 9 months ago

Your Answer