请问为什么在java中不能用而在mysql中却没有问题?求解释?

PreparedStatement pt2=conn.prepareStatement("alter table tb_main add column ? INT");
pt2.setString(1,“itemA”);
pt2.execute();

这是我的代码,每次执行都会抛出MySQLSyntaxErrorException:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''itemA' INT' at line 1
这样的异常,所以我就用同样的语句到mysql的command line client中执行,一点问题也没有,成功的添加了列,这是什么情况???

MYYA
浏览 159回答 2
2回答

catspeake

别使用pt2.setString(1,“itemA”);用了后会加上引号 "alter table tb_main add column 'itemA' INT"用字符串拼接吧 "alter table tb_main add column "+"itemA"+" INT"

茅侃侃

试试不使用参数。执行方法executeUpdate()
打开App,查看更多内容
随时随地看视频慕课网APP