PreparedStatement 以及事务的注意事项
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);
}
PreparedStatement 以及事务的注意事项的更多相关文章
- java_JDBC,连接数据库方式,RestSet结果集,Statement,PreparedStatement,事务,批处理,数据库连接池(c3p0和Druid)、Apache-DBUtils、
一.JDBC的概述 1.JDBC为访问不同的数据薛是供了统一的接口,为使用者屏蔽了细节问题.2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ...
- Django中的原子事务相关注意事项
Django中的原子事务支持(transaction.atomic)方式函数装饰器或者with语句,这种方式特别是前者和spring里面的AOP事务支持方式基本等同,当然其实质方式都是原始的try.. ...
- ORACLE触发器的自治事务的注意事项
直接上代码: Create OR replace Trigger TR_ROBXMX_CLDJBHHX After INSERT OR UPDATE OR DELETE ON ROBXMX1 --要监 ...
- JDBC学习笔记(7)——事务的隔离级别&批量处理
数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 ...
- sql server 分布式事务
使用分布式事务刚好可以解决集群同时更新多台SQL SERVER数据库,要么全部成功,要么全部回滚的需要. 原来微软早考虑到此方面的问题了. 下面背书,贴出微软官网上面的帮助文档: 分布式事务跨越两个或 ...
- 【转】JDBC学习笔记(7)——事务的隔离级别&批量处理
转自:http://www.cnblogs.com/ysw-go/ 数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发 ...
- SqlServer注意事项总结,高级程序员必背!
本篇文章主要介绍SqlServer使用时的注意事项. 想成为一个高级程序员,数据库的使用是必须要会的.而数据库的使用纯熟程度,也侧面反映了一个开发的水平. 下面介绍SqlServer在使用和设计的过程 ...
- SQLServer之创建事务序列化
创建事务序列化注意事项 语法:set transaction isolation level serialize; 序列化会指定下列内容: 语句不能读取已由其他事务修改但尚未提交的数据. 任何其他事务 ...
- SQLServer之创建分布式事务
分布式事务创建注意事项 指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点. 执行 BEGIN DISTRIBUTED TRAN ...
随机推荐
- 微信小程序_(组件)可拖动movable-view
微信小程序movable-view组件官方文档 传送门 Learn 一.moveable-view组件 一.movable-view组件 direction:movable-view的移动方向,属性值 ...
- Android_(控件)使用自定义控件在屏幕中绘制一条虚线
在Android屏幕中绘制虚线,最通用的是自定义控件DashedLine,再将自定义控件放入xml布局中 运行截图: 程序结构 package com.example.asus.gary_042; i ...
- 搭建Kubernetes的web管理界面
环境: [root@master ~]# kubectl get node NAME STATUS AGEnode1 Ready 5hnode2 Ready ...
- Linux-expect脚本-编写一个expect脚本
1.声明expect #!/usr/bin/expect -f 2.设置超时时间,获取参数 set ip [lindex $argv 0 ] //接收第一个参数,并设置IP set password ...
- [题解] [bzoj2622] 深入虎穴
题解 题解 考虑到正着跑不好想, 我们尝试反向跑 以每个终点作为起点, 维护每个点的最小值和次小值(最小的被老虎ban掉了) 转移的时候用当前点的次小值去更新其所连的点的最小值和次小值 由于最小的次小 ...
- 3 Java 冒泡排序法
冒泡排序( Bubble Sort)是一种简单的排序算法.它重复访问要数列, 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数 ...
- Java-JVM 自定义类加载器
一.sun.misc.Launcher (ExtClassLoader 与 AppClassLoader 的创建) public Launcher() { Launcher.ExtClassLoade ...
- mysql删除数据库所有表
-- 生成删除xxx数据库的所有表的sql语句SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` ...
- setHasFixedSize(true)的意义 (转)
RecyclerView setHasFixedSize(true)的意义 2017年07月07日 16:23:04 阅读数:6831 <span style="font-size:1 ...
- Windows 全绿色安装Mysql
1.从Oracle官网上下载Mysql的Windows安装包,注意要下载Zip文件 2.将Mysql的Zip文件下载到本地电脑指定目录下 3.配置my.inia. 在<安装目录>下创建一个 ...