JDBC 批处理

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(700)   2023-03-28 11:29:14

前言

JDBC 批处理查询/新增/修改的使用。虽然在一般的编码中不会直接使用jdbc的批处理,但是作为了解记录下来。

编码记录

JDBC批处理的使用
package org.xqlee.utils.database;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;

/**
 * 
 * 
 * <pre>
 * _________________________INFO_____________________________
 * | Description : [JDBC批处理的使用] 
 * | Encoding    : [UTF-8]
 * | Package     : [org.xqlee.utils.database]
 * | Project     : [utils]
 * | Author      : [LXQ]
 * | CreateDate  : [2016年6月7日上午9:57:33]
 * | Updater     : []
 * | UpdateDate  : []
 * | UpdateRemark: []
 * | Company     : [Shallink Electronic Information]
 * | Version     : [v 1.0]
 * | Libs        : []
 * __________________________________________________________
 * </pre>
 */
public class BatchSQL {

	public static void main(String[] params) {

		// statementBatch();
		preparedStatementBatch();
	}

	/**
	 * @说明 采用statement方式,不进行预编译 <BR/>
	 * @优点 能针对不同类型的sql语句进行批处理<BR/>
	 * @缺点 语句没进行预编译
	 * @场景 执行多条不同的sql语句,如新增,更新同时进行的情况
	 */
	public static void statementBatch() {
		Connection conn = null;
		Statement st = null;
		try {
			// 得到数据库连接
			conn = new DBManager("test").getConnection();
			conn.setAutoCommit(false);
			st = conn.createStatement();
			String sql = "";
			sql = "insert into test_batch values('1111','2222','33333')";
			st.addBatch(sql);
			sql = "insert into test_batch values('1111','4444','4444')";
			st.addBatch(sql);
			sql = "update test_batch set a='0000'";
			st.addBatch(sql);
			st.executeBatch();
			conn.commit();
			st.clearBatch();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (st != null) {
					st.close();
					st = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (Exception e2) {
				// 忽略
			}
		}

	}

	/**
	 * @说明 采用PreparedStatement进行预编译的方式执行批处理<BR/>
	 * @优势 采用了预编译sql,执行效率高<BR/>
	 * @缺点 只能处理sql语句相同但参数不同的批处理当中<BR/>
	 * @场景 批量新增,批量更新
	 */
	public static void preparedStatementBatch() {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			// 得到数据库连接
			conn = new DBManager("test").getConnection();
			conn.setAutoCommit(false);
			String sql = "insert into test_batch values(?,?,?)";
			ps = conn.prepareStatement(sql);
			for (int i = 0; i < 10; i++) {
				ps.setString(1, i + "A");
				ps.setString(2, i + "B");
				ps.setString(3, i + "C");
				ps.addBatch();
			}
			ps.executeBatch();
			conn.commit();
			ps.clearBatch();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != ps) {
					ps.close();
					ps = null;
				}
				if (null != conn) {
					conn.close();
					conn = null;
				}
			} catch (Exception e2) {
				// 忽略
			}

		}

	}

}
地址:https://www.leftso.com/article/13.html

相关阅读

JDBC 批处理查询/新增/修改的使用。虽然在一般的编码中不会直接使用jdbc的批处理,但是作为了解记录下来。
Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统
如果您在项目中仍然使用JDBC进行数据库访问,这很奇怪,因为有很多强大的替代品,如hibernate和iBatis
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
学习配置Quartz调度程序以运行使用Spring启动Java配置配置的Spring批处理作业。虽然,Spring的默认调度程序也很好,但是quartz可以更好地以更可配置的方式调度和调用任务。...
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java编程中纯jdk java方式编写webservice服务(server)和客服端(client)
Java编程之java static关键字,Java编程,static关键字