`
Luob.
  • 浏览: 1590364 次
  • 来自: 上海
社区版块
存档分类
最新评论

批量执行 DDL 和 DML 

    博客分类:
  • JDBC
阅读更多
package com.enhance.jdbc;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;

public class BatchTest {
	private String driver;
	private String url;
	private String user;
	private String pass;
	private Connection conn;
	private Statement stmt;
	public void initParam(String paramFile) throws Exception{
		Properties prop=new Properties();
		prop.load(new FileInputStream(paramFile));
		driver=prop.getProperty("driver");
		url=prop.getProperty("url");
		user=prop.getProperty("user");
		pass=prop.getProperty("pass");
	}
	
	//只能执行 DDL 和 DML  不能执行 select 
	public void executeBatch(String[] sqls)throws Exception{
		try{
			Class.forName(driver);
			conn=DriverManager.getConnection(url,user,pass);
			
			//关闭自动提交 ,并开启事务	
			conn.setAutoCommit(false);
			System.out.println("开启了事务!");
			stmt=conn.createStatement();
			for (String sql : sqls) {
				stmt.addBatch(sql);
			}
			int[] nums=stmt.executeBatch();  //只能执行 DDL 和 DML  不能执行 select 
			for (int i = 0; i < nums.length; i++) {
				System.out.println((i+1)+"行sql执行的结果:"+nums[i]);
			}
			conn.commit();
			System.out.println("提交了事务!");
			conn.setAutoCommit(true); //回复自动提交模式 ,主要在 线程池的时候 ,一定要复原后再放回去了,供其他 程序能正常使用 conn
		}finally{
			if(stmt!=null)
				stmt.close();
			if(conn!=null)
				conn.close();
		}
		
	}
	
	
	public static void main(String[] args) throws Exception {
		BatchTest bt=new BatchTest();
		bt.initParam("src/mysql.ini");
		String[]sqls={
				"insert into my_test values(null,'提交事务')"
				,"insert into my_test values(null,'加油')"
				,"update my_test set test_name='comme on!!' where test_id=4"
				,"{call add_proc(4,5,null)}"};// 批量更新 不能执行 PreparedStatement 和 CallableStatement
		bt.executeBatch(sqls);
	}

}

分享到:
评论

相关推荐

    vbs 批量建站和批量执行数据库脚本

    在许多情况下,我们需要对数据库进行批量操作,如创建表、插入数据或执行复杂的DDL(Data Definition Language)和DML(Data Manipulation Language)语句。VBScript可以与ADO(ActiveX Data Objects)库结合,提供...

    mysql批量执行sql文件的方法

    MySQL提供了多种方式来批量执行SQL文件,以简化这些任务。这里我们将详细探讨一种实用的方法,即通过创建一个批处理文件来一次性运行多个SQL脚本。 首先,你需要将待执行的SQL文件准备好。例如,我们有1.sql、2.sql...

    PHP mysqli 增强 批量执行sql 语句的实现代码

    但通常建议避免在批量操作中混合DML(插入、更新、删除)和DDL(创建、修改、删除表结构),因为这可能导致锁表和其他并发问题。 5. **内存管理**: 执行完每个结果集后,使用`$res-&gt;free()`释放内存是很重要的,...

    批量运用sqlplus上传sql语句

    - 执行DDL语句(如CREATE、ALTER、DROP等)时,注意数据库对象的依赖关系,避免因顺序错误导致的问题。 - 在生产环境中进行批量操作时,务必谨慎,最好先备份重要数据。 综上所述,批量运用sqlplus上传SQL语句是一...

    第5课+MaxCompute+DML操作.docx

    总的来说,MaxCompute的DML操作主要集中在数据的插入和查询,而它的设计和实现都是为了应对大数据环境下的批量处理任务,而不是实时查询和更新操作。了解这些特性对于有效利用MaxCompute进行大数据分析至关重要。在...

    c连接oracle数据库OCCI编程PPT学习教案.pptx

    - `executeUpdate()`:用于执行DML和DDL语句,如`INSERT`、`UPDATE`、`DELETE`和`CREATE TABLE`等。 - `executeQuery()`:执行查询语句,返回结果集。 - `executeArrayUpdate()`:执行复合DML语句,比如批量插入...

    Oracle实验指导书

    【Oracle实验指导书】主要涉及的是SQL语言的运用,...通过实验,学生将全面掌握SQL的DDL和DML操作,从而能够更加熟练地管理和维护Oracle数据库。在实验过程中,独立思考、及时总结和交流讨论都是提高技能的关键环节。

    清华IT SQLServer2005教程(6)

    DML触发器又分为AFTER和INSTEAD OF两类,AFTER触发器在DML语句执行后触发,INSTEAD OF触发器则替代DML语句执行。 创建触发器时,需要使用`CREATE TRIGGER`语句,并指定触发器名称、作用对象(表或视图)、触发时机...

    PL-SQL案例.rar

    10. DDL和DML操作:PL/SQL可以直接在代码中执行创建表、删除表、修改表结构等DDL(Data Definition Language)和插入、更新、删除等DML(Data Manipulation Language)操作。 在"PL-SQL案例.rar"中,可能涵盖了以上...

    oracle10g经典实战PLSQL介绍PPT教案.pptx

    - SQL和PL/SQL集成:PL/SQL支持所有SQL语法,包括DML和DDL。 - CASE语句和表达式:提供条件判断的灵活性。 - 类型进化:允许数据类型的演变和扩展。 - 日期/时间类型:增强的日期和时间处理功能。 - 本地编译:...

    SQLTool.rar_SQLTool_oracle

    同时,它支持批量执行,极大地提高了工作效率。在处理大数据量时,SQLTool的性能表现优秀,确保了数据操作的高效性。 在DDL方面,SQLTool具备丰富的数据库设计功能。用户可以创建和修改表结构,设置约束,管理索引...

    oracle自动创建数据

    6. **DDL与DML操作**:通过动态执行DDL(数据定义语言)和DML(数据操纵语言)语句,例如CREATE TABLE、INSERT INTO等,可以自动化创建表结构并填充数据。 7. **GoldenGate**:Oracle GoldenGate提供实时数据复制...

    Oracle10G 数据库同步

    - **runsql.sql**:这是一个SQL脚本文件,通常用于执行特定的数据库操作,如创建表、插入数据或执行DDL/DML语句。在数据库同步过程中,这类脚本可能包含用于更新目标数据库的SQL命令。 五、维护与优化 1. **监控与...

    Springboot-dms:数据库在线管理工具

    这款工具不仅实现了基本的数据库查询、字段信息查看,还具备了执行DDL和DML语句的功能,并具有语句修正的智能特性,极大地提升了数据库管理的效率。 首先,Spring Boot是Java生态系统中的一个热门框架,以其快速...

    SQL脚本批处理

    1. SQL脚本编写和执行:理解SQL语言的基本语法和命令,如DDL(Data Definition Language)和DML(Data Manipulation Language)。 2. 批处理概念:批量执行SQL脚本以提高效率和自动化流程。 3. 错误处理和调试:识别...

    Oracle并行度.docx

    Oracle 并行度是Oracle数据库系统中的一种优化技术,它允许大数据操作如DDL(数据定义语言)和DML(数据操纵语言)通过多个并行进程同时执行,以提高处理速度和利用系统资源。并行度是指在一个操作中同时运行的进程...

    数据库系统原理与设计实验教材0603

    3. **第3章 SQL Server的DDL与DML**:DDL(Data Definition Language)用于定义数据库结构,如创建、修改和删除表、视图等对象。DML(Data Manipulation Language)用于操纵数据,包括插入、更新和删除记录。此章将...

    SQLiteSpy_1.9.1

    2. **SQL编辑与执行**:内置的SQL编辑器允许用户编写和执行SQL查询语句,支持复杂的SELECT、INSERT、UPDATE、DELETE以及CREATE TABLE、ALTER TABLE等DDL和DML操作。 3. **数据编辑**:用户可以直接在表格视图中编辑...

    ORACLE常用指令

    在使用DML和DDL语句时,需要注意以下几点: - DML语句会锁定表行,确保提交(COMMIT)或回滚(ROLLBACK)事务。 - 对大量记录进行操作时,应限制每次操作的数量,避免长时间锁定或资源消耗过大。 - 避免在业务高峰期...

Global site tag (gtag.js) - Google Analytics