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 以及事务的注意事项的更多相关文章

  1. java_JDBC,连接数据库方式,RestSet结果集,Statement,PreparedStatement,事务,批处理,数据库连接池(c3p0和Druid)、Apache-DBUtils、

    一.JDBC的概述 1.JDBC为访问不同的数据薛是供了统一的接口,为使用者屏蔽了细节问题.2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ...

  2. Django中的原子事务相关注意事项

    Django中的原子事务支持(transaction.atomic)方式函数装饰器或者with语句,这种方式特别是前者和spring里面的AOP事务支持方式基本等同,当然其实质方式都是原始的try.. ...

  3. ORACLE触发器的自治事务的注意事项

    直接上代码: Create OR replace Trigger TR_ROBXMX_CLDJBHHX After INSERT OR UPDATE OR DELETE ON ROBXMX1 --要监 ...

  4. JDBC学习笔记(7)——事务的隔离级别&批量处理

    数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 ...

  5. sql server 分布式事务

    使用分布式事务刚好可以解决集群同时更新多台SQL SERVER数据库,要么全部成功,要么全部回滚的需要. 原来微软早考虑到此方面的问题了. 下面背书,贴出微软官网上面的帮助文档: 分布式事务跨越两个或 ...

  6. 【转】JDBC学习笔记(7)——事务的隔离级别&批量处理

    转自:http://www.cnblogs.com/ysw-go/ 数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发 ...

  7. SqlServer注意事项总结,高级程序员必背!

    本篇文章主要介绍SqlServer使用时的注意事项. 想成为一个高级程序员,数据库的使用是必须要会的.而数据库的使用纯熟程度,也侧面反映了一个开发的水平. 下面介绍SqlServer在使用和设计的过程 ...

  8. SQLServer之创建事务序列化

    创建事务序列化注意事项 语法:set transaction isolation level serialize; 序列化会指定下列内容: 语句不能读取已由其他事务修改但尚未提交的数据. 任何其他事务 ...

  9. SQLServer之创建分布式事务

    分布式事务创建注意事项 指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点. 执行 BEGIN DISTRIBUTED TRAN ...

随机推荐

  1. K 短路

    这种东西到现在才学-- 考虑 \(T\) 为根的最短路树,一条路径一定是树上边和非树边交错. 我们只管非树边,对于一条路径,非树边构成一个序列 \(L\),相邻两条路径 \(\left(u_1,v_1 ...

  2. 初始jquery(5)

    一.什么是JQuery: JQuery是对JavaScript的封装,简化了JS代码,是主流框架的基础(VUE,EasyUI,Bootstrap) 它是2006年推出的 二.JQuery的优势: 1. ...

  3. Android有进度条异步任务下载图片

    首先在AndroidMainifest中添加上网权限 ? 1 <uses-permission android:name="android.permission.INTERNET&qu ...

  4. 代码审计之CVE-2019-9081 Laravel5.7 反序列化 RCE复现分析

    本文首发于先知社区:https://xz.aliyun.com/t/5510 环境: php7.2+apache+laravel5.7 漏洞描述: Laravel Framework是Taylor O ...

  5. 代码审计之seacms v6.54 前台Getshell 复现分析

    1.环境: php5.5.38+apache+seacms v6.54 上一篇文章针对seacms v6.45 进行了分析,官方给出针对修复前台geishell提供的方法为增加: $order = ( ...

  6. java连接mysql出现The server time zone value '�й���׼ʱ��' is unrecognized or represents more than...

    在连接的配置文件中,指定数据库位置的末尾加上serverTimezone=UTC ```yml url: jdbc:mysql://localhost:3306/app?serverTimezone= ...

  7. 在linux下通过ssh运行X图形软件

    服务器端:编辑/etc/ssh/sshd_config中的以下内容启用AllowTcpForwarding启用X11Forwarding将X11DisplayOffset设定为10. 启用X11Use ...

  8. mysql 查看库结构---查看表结构

    查看库结构:SHOW DATABASES; 查看表结构: show tables即为显示当前数据库中所有的表.又如: mysql> use dbname //进入dbname库Database ...

  9. php执行方式对比:mod_php&php-fpm

    mod_php 1.是apache的附属包,apache死掉后php也会死掉 2.稳定性差,php出错服务器进程也会受影响 php-fpm       1.和nginx是两个独立的个体. 2.php- ...

  10. STL priority_queue

    priority_queue 优先队列(Priority Queues):顾名思义,一个有着优先级的队列.它是一种ADT,和队列的思想差不多—— 排队,数据结构中的队列是不能插队的,不能颠倒排队的顺序 ...