Java JDBC 原生批处理SQL

编程教程 > Java (1277) 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查询数据库数据,并将返回结果赋值给JSON/JSONArray对象,用于返回数据。源码参考:import java.sql.Resu
Java 数据库连接 (JDBC)是标准应用程序编程接口 (API) 的 JavaSoft 规范,它允许 Java 程序访问数据库管理系统
如果您在项目中仍然使用JDBC进行数据库访问,这很奇怪,因为有很多强大的替代品,如hibernate和iBatis
学习配置Quartz调度程序以运行使用Spring启动Java配置配置的Spring批处理作业。虽然,Spring的默认调度程序也很好,但是quartz可以更好地以更可配置的方式调度和调用任务。...
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
java编程为啥会出现spring框架,为什么要有Spring?
本文将介绍Spring Boot和HikariCP示例。HikariCP是快速,简单,可靠和生产就绪的JDBC连接池。在Spring Boot 2.0版本中,默认数据库池技术已从Tomcat P...
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R
Java编程中spring boot项目如何获取spring容器applicationContext
You must configure either the server or JDBC driver (via the serverTimezone configuration propert...
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
学习使用Spring Batch分区使用多个线程来处理Spring Boot应用程序中的一系列数据集任务。1.并行处理和分区1.1 并行处理 大多数批处理问题可以使用单线程解决,但很少有复杂的场...
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
spring boot是一个崭新的spring框架分支项目,本文讲解基本的数据库配置