Java JDBC 原生批处理SQL

编程教程 > Java (1285) 2025-01-25 15:01:57

前言

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

编码记录

JDBC批处理的使用

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) {
				// 忽略
			}

		}

	}

}

over  搞定,收工!

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
前言JDBC 批处理查询/新增/修改的使用。虽然在一般的编码中不会直接使用原生jdbc执行SQL批处理,但是作为了解记录下来。编码记录JDBC批处理的使用imp
Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统
Java编程使用原生JDBC查询数据库数据,并将返回结果赋值给JSON/JSONArray对象,用于返回数据。源码参考:import java.sql.Resu
JavaScript H5原生操作元素class,包括获取元素class值,设置class值修改元素class值操作。示例数据 &lt;head&gtl; &lt;meta cha
如果您在项目中仍然使用JDBC进行数据库访问,这很奇怪,因为有很多强大的替代品,如hibernate和iBatis
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程之java static关键字,Java编程,static关键字
java编程为啥会出现spring框架,为什么要有Spring?
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java编程中spring boot项目如何获取spring容器applicationContext