首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

preparedStatement剔除表的所有内容出错,statement可以正常试行

2013-02-24 
preparedStatement删除表的所有内容出错,statement可以正常试行我在数据库中已经在mysql建好了若干个表,St

preparedStatement删除表的所有内容出错,statement可以正常试行
我在数据库中已经在mysql建好了若干个表,String数组存储表名


[解决办法]
引用:
引用:用pstatement,最终的sql是delete from ‘表名’显然是错误的格式,而st则没有单引号

pstmt的表名需要加单引号?
st的不需要加?

第一次听说。

我也第一次见到....从错误上看是''titles''多了引号 语法错误....
st 直接 'delete from xxx' 就可以不报错..
[解决办法]
PreparedStatement不可以这么用吧。。
------解决方案--------------------


PreparedStatement好像不可以这样用。。。。
[解决办法]
想用预处理语句时传入这类参数都应该使用前置的变量声明,你传入的参数应该是sql中的一个可以使用的变量,否则sql将认为你传入的只是一个字符串。
针对这个问题,sql中应该这样写(我很少用mysql,我写的只用于sqlserver):


DECLARE @tableName nvarchar(20)
SET @tableName=?
exec('select * from '+@tableName)

但是我非常不推荐这种方式,首先,表名或数据库中任何对象的名称对应用程序来说都应该是已知的,也就是常量,这种参数化sql对象仅用于可变的参数也就是变量,将常量作为变量处理是不合理的。

热点排行