JDBC 数据库批处理操作
来源:互联网 发布:java驻场开发怎么样 编辑:程序博客网 时间:2024/05/16 07:10
由于建立数据库连接是一个很消耗资源和时间的操作,一般建立连接的要求尽可能晚建立,尽可能早释放。但是对于执行多条sql语句时,要是频繁第建立连接释放连接,效率会很低。因此可能通过JDBC的批处理来优化此操作。即建立一次连接,执行多条sql语句。
主要用到的方法:
PreparedStatement.addBatch(); //增加一条sql语句,sql语句必须一致,发送的sql语句经过了预编译,执行效率高,只能应用在sql语句相同,参数不同的场景Statement.addBatch(String sql); //增加一条sql语句,有点:可以向批处理中增加多条不同的sql的语句;缺点:sql语句没有预编译,因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据PreparedStatement.executeBatch();//将所有sql语句一起执行clearBatch();清除批处理命令
//Demo1,使用Statement.addBatch()来进行批处理
Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtil.getConnection();String sql1 = "insert into user(name,password,email,birthday) values('kkk','123','abc@sina.com','1978-08-08')";String sql2 = "update user set password='123456' where id=3";st = conn.createStatement();st.addBatch(sql1); //把SQL语句加入到批命令中st.addBatch(sql2); //把SQL语句加入到批命令中st.executeBatch();} finally{JdbcUtil.free(conn, st, rs);}
//Demo2, 使用PreparedStatement.addBatch()
conn = JdbcUtil.getConnection();String sql = "insert into user(name,password,email,birthday) values(?,?,?,?)";st = conn.prepareStatement(sql);for(int i=0;i<50000;i++){st.setString(1, "aaa" + i);st.setString(2, "123" + i);st.setString(3, "aaa" + i + "@sina.com");st.setDate(4,new Date(1980, 10, 10));st.addBatch();if(i%1000==0){st.executeBatch();st.clearBatch();}}st.executeBatch();
- JDBC 数据库批处理操作
- JDBC操作数据库的批处理
- JDBC批处理操作
- jdbc操作 数据库同步,全量,加入线程,批处理
- JDBC操作MySQL进行批处理
- 批处理操作Oracle数据库
- 批处理操作mysql数据库
- jdbc操作 数据库做同步,全量+增量,线程控制,批处理
- JAVAWEB开发之JDBC详解(连接操作数据库、处理大数据、批处理)
- JDBC中进行批处理操作的例子
- JDBC的批处理操作三种方式
- Java JDBC批处理插入数据操作
- JDBC的批处理操作三种方式
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- Java JDBC批处理插入数据操作
- 经典四阶龙格库塔法
- 康托展开与逆展开
- POJ3664
- 中东部还是阴霾得很严重呀
- Matlab中龙格-库塔(Runge-Kutta)方法原理及实现
- JDBC 数据库批处理操作
- C#中流的读写器BinaryReader、BinaryWriter,StreamReader、StreamWriter详解
- Ubuntu下中文乱码解决方案
- C++各大有名科学计算库(转)
- 虚拟内存
- Java Spring Tutorial -- autowire自动装配
- oracle查询数据库名、实例名、ORACLE_SID
- 【代码】Flex图层筛选
- 回调机制与好莱坞原则