PreparedStatement中的错误

时间:2015-09-03 08:07:57

标签: java mysql

我是SQL新手。每当我尝试执行以下代码时,它都会给出MySQLSyntaxErrorException。请帮助!!

    Connection Conn_Save = null;
        PreparedStatement Pst_Save = null;
        Conn_Save = MysqlConnect.ConnectDB();
        String UserName = "pv";
        String CreateSql = "Create table if not exists ? (Col_Date Date, Col_Break Varchar(20),Col_Lun Varchar(20),Col_Snack Varchar(20),Col_Dine Varchar(20))";
        Pst_Save = Conn_Save.prepareStatement(CreateSql);
        Pst_Save.setString(1, UserName);
        Pst_Save.execute();

1 个答案:

答案 0 :(得分:0)

我担心数据库不会像这样工作 - 当你准备一个sql语句时,语句的结构必须在那里(特别是你需要预先指定表,列等 - 只有DATA可以是使用占位符分配。)

这种限制是合乎逻辑的,因为DBMS必须在准备时解析SQL以构建优化查询。

如果你想实现你正在尝试的东西,你必须使用每个新表的字符串中包含的参数化表来构建动态sql字符串。然后只需使用正常的执行。