JDBC批处理executeBatch

JDBC批处理executeBatch

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

JDBC运行SQL声明,有两个处理接口,一PreparedStatement,Statement,一般程序JDBC有多少仍然比较PreparedStatement

 

只要运行批处理,PreparedStatement少一点Statement

 

ps = conn.prepareStatement(sql);

for(int i = 0;i<10;i++){

   ps.setString(1,”1″);

//PreparedStatement批处理方式一

   ps.addBatch();

}

//PreparedStatement批处理方式二

ps.addBatch(“静态SQL”);

ps.executeBatch();

这个是正常运行的

 

但是把PreparedStatement放到里面就没效了,下面:

for(int i = 0;i<10;i++){

   ps = conn.prepareStatement(sql);

   ps.setString(1,”1″);

   ps.addBatch();

}

 

ps.executeBatch();

 

 

Statement适合循环赋值到sql,代码下面:

 

Statement st = conn.createStatement();

for(int i = 0;i<10;i++){

   st.addBatch(“静态sql……….”);

}

st.executeBatch();

这个是正常运行全部的语句

 

 

 

 

总结:造成这种原因是

Statement st = conn.createStatement();这里能够不放SQL语句

ps = conn.prepareStatement(sql);这个一定要放初始SQL语句

JDBC的批处理不能增加select语句,否则会抛异常:

java.sql.BatchUpdateException: Can not issue SELECT via executeUpdate().
  at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1007)

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117784.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • websocket 粘包问题_websocket数据过大

    websocket 粘包问题_websocket数据过大websocket 底层使用的tcp 协议。 当一次发送数据过长时,tcp 会把数据封成多个包发送;同样当数据过短时,会把数据合并成一个包发送,这种现象就是粘包。粘包的情况也有可能是接收端造成的。[参考]( http://m.blog.csdn.net/duotemplar/article/details/73193038).tcp协议相关的知识百度之。 粘包出现必然对应拆包处理。处理

    2022年8月11日
  • 序列号生成-模拟windows office序列号[通俗易懂]

    序列号生成-模拟windows office序列号[通俗易懂]最近看到office2013在提示过期问题(升级win10后遗症),就想到模拟下office的激活码。~~起初想到应该简单,最后越试越复杂。所以就记录下,毕竟花费了时间。packagetest;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;publicclas

    2022年10月22日
  • C语言中什么是常量表达式_c语言整型表达式

    C语言中什么是常量表达式_c语言整型表达式常量表达式c语言,整型表达式和常量表达式中都没有变量参与吧?完整问题:好评回答:表达式没有变量参与?不是很清楚这个问题的定义,只是知道(ab)这种表达式下a和b都可以是变量Java编译器对于String常量表达式的优化是什么呢?完整问题:Java编译器对于String常量表达式的优化是什么呢?好评回答:首先把问题摆出来,先看这个代码Stringa=”ab”;Stringb=”a”…

    2022年9月29日
  • SLAM技术课程总结「建议收藏」

    SLAM技术课程总结「建议收藏」这学期SLAM技术课程遇到最多的问题,或者说困难更合适,其实和学生无关。专业培养方案中,SLAM技术是双语课程,但此课对数学要求极高,通常应用型本科院校学生的数学基础并不具备直接学习此课程的条件; 操作环境要求学生需在Linux系统下完成,虽然现在有云端实践平台,但掌握基本的Linux命令依然是必不可少的基础,对于机器人工程专业学生而言,课程体系忽略了这块训练,使此课孤立于课程体系中,无法和现有培养方案的其他课程形成良性互动; 编程要求C++11,当然能够掌握14以上更好,而之前的课程多侧重于C和

    2022年10月1日
  • pycharm2021.11.3 激活码【中文破解版】

    (pycharm2021.11.3 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsaWN…

    2022年3月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号