PreparedStatement 以及事务的注意事项
2024-09-05 11:43:12
a).PreparedStatement 可以进行批量操作,但是与Statement有一定的区别
1. Statement可以进行不同sql语句的批量操作
即可以同时进行 crud 操作.
String sql1=xxx;
String sql2=xxx;
String sql3=xxx;
Statement statement=conn.createStatement();
statement.addBatch(sql1) ;
statement.addBatch(sql2);
statement.addBatch(sql3);
statement.executeQuery(sql)
or
statement.executeUpdate(sql)
2. PreparedStatement 不能执行不同的sql语句, 只能执行一条类型的sql语句,但是可以参数不同
String sql="insert into table values(?,?,?,?,?)";
PreparedStatement pstm=conn.preparedStatement (sql);
pstm.setString(1,xx);
pstm.setString(2,xx);
pstm.setString(3,xx);
pstm.setString(4,xx);
pstm.addBatch();
pstm.setString(1,xx);
pstm.setString(2,xx);
pstm.setString(3,xx);
pstm.setString(4,xx);
pstm.addBatch();
pstm.executeQuery();
or
pstm.executeUpate();
b) 注意这些批量操作,应该使用开启事务
开启事务:
1.需要去看数据库是否支持事务,更换引擎为InnodDB
2.有些版本的navicat有一个开启事务的按钮
3.在Dao层中,可以使用conn.setAutoCommit(false) 默认为true,这里设置为false,可以阻止自动提交
//在进行完操作后,应该手动提交
conn.commit();
//如果出错, 需要回滚事务,那么我们可以在catch中进行事务的回滚操作
//首先判断conn是否关闭了
if(!conn.isClosed)
{
//没有关闭进行回滚
conn.rollback();
//随你...
conn.setAutoCommit(true);
}
最新文章
- Windows 10 安装SVN 不显示状态图标--解决方法
- Linux系统下设置环境变量
- UVALive 4428 Solar Eclipse --计算几何,圆相交
- VC CComboBox用法总结
- hdu 4982 Goffi and Squary Partition
- 锋利的jQuery书中推荐的几款插件
- 圆形图片CircleImageView
- 【BZOJ】2253: [2010 Beijing wc]纸箱堆叠
- java易错基础知识点
- ArcGIS API for Silverlight 点沿着线流动
- hdu 2057
- 编写优秀jQuery插件的10个技巧
- Linux 电子书共享下载--大家一起学习
- 在JBuilder8在使用ANT
- SQL函数学习(一):substring()函数
- 转 : net use的使用
- activemq的安装与使用
- CodeForces - 740C
- LVS负载均衡原理
- hashChange &; url change &; QRCode &; canvas to image
热门文章
- 「SNOI2017」礼物
- NOIP 模拟赛 那些年,我们学过的文化课 --致已退役的fqk神犇.
- noi.ac #535 生成树
- BZOJ 4823 Luogu P3756 [CQOI2017]老C的方块 (网络流、最小割)
- <;% 拼写页面
- Swagger : API JSON 文件 转 PDF 问题总结
- python接口自动化:python3.6中import Crypto.Hash报错的解决方案
- Nginx事件管理之epoll模块
- 求平面上N点最远两点和最近两点距离
- Struts模型驱动