在mysql CREATE TABLE查询中设置变量值? Java的

时间:2015-06-10 07:21:29

标签: java mysql

感谢您对我之前发布的帖子here

的评论

我尝试通过更改表名来更改我的查询:

String str = getEmail();

String query = " CREATE TABLE "+str+"(email varchar(255), post_text varchar(255), post_image longblob,  post_time timestamp, post_date date, likes varchar(255), like_time timestamp, like_date date) ";

pstmt = cn.prepareStatement(query);

int i = pstmt.executeUpdate();

现在语法中出现错误:

MySQLSyntaxErrorException: near.." '**null**(email varchar(255).."

我不知道为什么 null ??那里的错误是什么?

我是Mysql的新手..请原谅帮助.. 非常感谢..thnx

2 个答案:

答案 0 :(得分:0)

看起来getEmail();会返回null。所以你的表名是null,你得到这些错误信息。 在调用create语句之前检查它。

您不应在表名中使用特殊字符。如果你想这样做,你必须用反引号转义表名:

String query = " CREATE TABLE `"+str+"` (email varchar(255), post_text varchar(255), post_image longblob,  post_time timestamp, post_date date, likes varchar(255), like_time timestamp, like_date date) ";

答案 1 :(得分:0)

您的str字符串为null。请给它一个值。

String str = getEmail();
if(str != null)
{
   //do your stuff here
}