表名也不确定用PreparedStatement 可以吗?

忽而今夏1104 2014-03-30 10:31:43
String sql = "update ? set b=? ";

PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql);

for (ArrayList<String> al : _list) {
pst.setString(1,“xxxTable”));

pst.setString(2, "xxx");

pst.addBatch();








我发现这样写不行。好像用PreparedStatement 表名不能变这个怎么弄啊?
...全文
1661 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
巫巫巫 2014-04-04
  • 打赏
  • 举报
回复
PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
忽而今夏1104 2014-04-04
  • 打赏
  • 举报
回复
引用 13 楼 beiouwolf 的回复:
PreparedStatement <- 看名字...这叫预编译声明 不同的表你怎么处理预编译? 而且,批处理也不是给你用来操作不同表用的呀
我就是想效率高点啊!!! 我有很多不同表的sql 都是update要执行有快点的方法吗?大概有100多万条数据,其中有一个字段是图片。
beiouwolf 2014-04-04
  • 打赏
  • 举报
回复
PreparedStatement <- 看名字...这叫预编译声明 不同的表你怎么处理预编译? 而且,批处理也不是给你用来操作不同表用的呀
忽而今夏1104 2014-04-03
  • 打赏
  • 举报
回复
引用 7 楼 preferme 的回复:
没见过这样用的。 楼主对JDBC的用法的理解,还需要加强啊。
主要是想用 pst.addBatch();啊 凭着写就不能用pst.addBatch();了吧。 100条sql都是不同的表名怎么用pst.addBatch();做批量更新啊? PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql); for (ArrayList<String> al : _list) { pst.setString(1,“xxxTable”)); pst.setString(2, "xxx"); pst.addBatch();
tony4geek 2014-04-03
  • 打赏
  • 举报
回复
那么你直接拼吧。
「已注销」 2014-04-03
  • 打赏
  • 举报
回复
表名怎么能不确定,sql没有这样模糊定义的
teemai 2014-03-31
  • 打赏
  • 举报
回复
直接挪到for里面
  • 打赏
  • 举报
回复
直接=?是不行的,不过可以"update " + tableName+ " set 这样传进去的。
长笛党希望 2014-03-31
  • 打赏
  • 举报
回复
不可以这么做的,?表示参数,表名不是参数。 没办法只能用字符拼接吧,这个倒不怕注入。
sunbo624 2014-03-31
  • 打赏
  • 举报
回复
不行 表名不是参数
冰思雨 2014-03-31
  • 打赏
  • 举报
回复
没见过这样用的。 楼主对JDBC的用法的理解,还需要加强啊。
-江沐风- 2014-03-31
  • 打赏
  • 举报
回复
表名用变量就可以了!
铁匠梁老师 2014-03-31
  • 打赏
  • 举报
回复
PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql);
挪到循环里面。
忽而今夏1104 2014-03-30
  • 打赏
  • 举报
回复
没法写啊,因为有 PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql); 在循环上面啊
时不我待_ 2014-03-30
  • 打赏
  • 举报
回复
table为什么不用字符串拼接的方式

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧