JDBC操作数据库之批处理

JDBC开发中,操作数据库需要和数据库建立连接,然后将要执行的SQL语句发送到数据库服务器,最后关闭数据库连接,都是按照这样的操做的,如果按照此流程要执行多条SQL语句,那么就要建立多个数据库连接,将时间浪费在数据库连接上,针对这样的问题,JDBC给出了一个很好的解决方案------JDBC的批处理。

示例代码

(1)index.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>批处理操作</title>
 8 </head>
 9 <body>
10     <jsp:useBean id="batch" class="com.java.Batch"></jsp:useBean>
11     <%
12         //执行批量插入操作
13         int row = batch.saveBatch();
14         out.print("批量插入了【"+row+"条信息】");
15     %>
16 </body>
17 </html>

查看代码

(2)Batch类

 1 package com.java;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.SQLException;
 7 import java.util.Random;
 8
 9 public class Batch {
10     public Connection getConnection() {
11         //数据库连接
12         Connection conn = null;
13         try {
14             //加载数据库驱动,注册到驱动管理器中
15             Class.forName("com.mysql.jdbc.Driver");
16             //数据库连接字符串
17             String url = "jdbc:mysql://localhost:3306/test";
18             //数据库用户名
19             String username = "root";
20             //数据库密码
21             String password = "123456";
22             //创建Connection连接
23             conn = DriverManager.getConnection(url,username,password);
24
25         }catch(ClassNotFoundException e) {
26             e.printStackTrace();
27         }catch(SQLException e) {
28
29             e.printStackTrace();
30         }
31         //返回数据库连接
32         return conn;
33     }
34     /**
35      * 批量添加数据
36      * @return  所影响的行数
37      */
38     public int saveBatch() {
39         //行数
40         int row = 0;
41         //获取数据库连接
42         Connection conn = getConnection();
43         try {
44             //插入数据的SQL语句
45             String sql = "insert into book(id,name,price,bookCount,author) values(?,?,?,?,?)";
46             //创建PrepareStatement
47             PreparedStatement ps = conn.prepareStatement(sql);
48             //实例化Random
49             Random random = new Random();
50             //循环添加数据
51             for(int i=10;i<20;i++) {
52                 //对SQL语句中的第一个参数赋值
53                 ps.setInt(1, i+1);
54                 //对SQL语句中的第二个参数赋值
55                 ps.setString(2, "图书"+i);
56                 //对SQL语句中的第三个参数赋值
57                 ps.setDouble(3, i%2);
58                 //对SQL语句中的第四个参数赋值
59                 ps.setInt(4, random.nextInt(5)+10);
60                 //对SQL语句中的第五个参数赋值
61                 ps.setString(5, "作者"+i);
62                 //添加批处理命令
63                 ps.addBatch();
64             }
65             //执行批处理操作并返回计数组成的数组
66             int[] rows = ps.executeBatch();
67             //对行数赋值
68             row = rows.length;
69             //关闭PrepareStatement
70             ps.close();
71             //关闭Connection
72             conn.close();
73         }catch(Exception e) {
74             e.printStackTrace();
75         }
76
77         return row;
78     }
79 }

程序运行结果:

时间: 2024-08-29 08:54:36

JDBC操作数据库之批处理的相关文章

JDBC操作数据库的学习(2)

在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本篇就在简单开发中如何对上一篇的例子进行“升级”,满足简单开发中对数据库的增删改查(CRUD). 如果按照上一篇中的例子,那么我们在做增删改查的话将会出现每个方法都要获取连接,释放资源,代码会出现很大的重复性,因此我们应该将每个增删改查每个方法中可以复用的代码抽取出来,同时为了能切换数据库方便,也该将一些配置信

jdbc操作数据库语句

非常有用的jdbc操作数据库语句,记录下来,以方便以后的查询. public class PersonDao { // 增加操作 public void insert(Person person) throws Exception; // 修改操作 public void update(Person person) throws Exception; // 删除操作 public void delete(String id) throws Exception ; // 按ID查询操作 publi

JDBC操作数据库的学习(1)

单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的连接驱动,应用程序通过这些驱动来操作数据库: 但是这里就又有一个问题了,不同的数据库有各自的驱动程序,而一个应用程序要操作不同的数据库,那么就要懂得要使用的数据库的驱动如何操作,这样就增加了学习成本.好在我们使用Java开发应用,而Java中只需要使用JDBC就能操作所有的数据库,因为JDBC提供的

几种通过JDBC操作数据库的方法,以及返回数据的处理

1.SQL TO String :只返回一个查询结果 例如查询某条记录的总数 rs = stmt.executeQuery(replacedCommand);             if (rs != null && rs.next()) // rs only contains one row and one column             {                    String tempStr = rs.getString(1);                 

JDBC操作数据库的基本步骤

JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. 7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接). package com.yangshengjie.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java

Spark Streaming通过JDBC操作数据库

本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Streaming也提供了两种API与之对应,其中spark-streaming-kafka-0-8支持Kafka 0.8.2.1以后的Broker:spark-streaming-kafka-0-10支持0.10.0以上Broker,处于实验阶段.两者的对比如下表所示. |spark-streaming-ka

JDBC操作数据库的基本操作

JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. 7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接). 1 package com.yangshengjie.jdbc; 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 imp

JDBC操作数据库的三种方式比较

JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL.oracle.DB2等关系型数据库均是通过JDBC来访问的,现在主流的ORM框架Hibernate.Mybatis等均是在JDBC的基础上做的进一步封装.优化.一般小型的项目,可以直接用JDBC来访问数据库,简单方便.我在进过几个项目后,总结了三总JDBC的基本用法,对这几种用法做一个总结. 第一种

JDBC操作数据库的详细步骤

JDBC操作数据库的步骤: 1.注册驱动 告知JVM使用的是哪一个数据库的驱动 2.获得连接 使用JDBC中的类,完成对MySQL数据库的连接 3.获得语句执行平台 通过连接对象获取对SQL语句的执行者对象 4.执行sql语句 使用执行者对象,向数据库执行SQL语句 获取到数据库的执行后的结果 5.处理结果 6.释放资源  一堆close() 1.注册驱动,发射技术,将驱动加入到内容 使用java.sql.DriverManager类静态方法 registerDriver(Driver driv