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);
}
}
分享到:
相关推荐
在许多情况下,我们需要对数据库进行批量操作,如创建表、插入数据或执行复杂的DDL(Data Definition Language)和DML(Data Manipulation Language)语句。VBScript可以与ADO(ActiveX Data Objects)库结合,提供...
MySQL提供了多种方式来批量执行SQL文件,以简化这些任务。这里我们将详细探讨一种实用的方法,即通过创建一个批处理文件来一次性运行多个SQL脚本。 首先,你需要将待执行的SQL文件准备好。例如,我们有1.sql、2.sql...
但通常建议避免在批量操作中混合DML(插入、更新、删除)和DDL(创建、修改、删除表结构),因为这可能导致锁表和其他并发问题。 5. **内存管理**: 执行完每个结果集后,使用`$res->free()`释放内存是很重要的,...
- 执行DDL语句(如CREATE、ALTER、DROP等)时,注意数据库对象的依赖关系,避免因顺序错误导致的问题。 - 在生产环境中进行批量操作时,务必谨慎,最好先备份重要数据。 综上所述,批量运用sqlplus上传SQL语句是一...
总的来说,MaxCompute的DML操作主要集中在数据的插入和查询,而它的设计和实现都是为了应对大数据环境下的批量处理任务,而不是实时查询和更新操作。了解这些特性对于有效利用MaxCompute进行大数据分析至关重要。在...
- `executeUpdate()`:用于执行DML和DDL语句,如`INSERT`、`UPDATE`、`DELETE`和`CREATE TABLE`等。 - `executeQuery()`:执行查询语句,返回结果集。 - `executeArrayUpdate()`:执行复合DML语句,比如批量插入...
【Oracle实验指导书】主要涉及的是SQL语言的运用,...通过实验,学生将全面掌握SQL的DDL和DML操作,从而能够更加熟练地管理和维护Oracle数据库。在实验过程中,独立思考、及时总结和交流讨论都是提高技能的关键环节。
DML触发器又分为AFTER和INSTEAD OF两类,AFTER触发器在DML语句执行后触发,INSTEAD OF触发器则替代DML语句执行。 创建触发器时,需要使用`CREATE TRIGGER`语句,并指定触发器名称、作用对象(表或视图)、触发时机...
10. DDL和DML操作:PL/SQL可以直接在代码中执行创建表、删除表、修改表结构等DDL(Data Definition Language)和插入、更新、删除等DML(Data Manipulation Language)操作。 在"PL-SQL案例.rar"中,可能涵盖了以上...
- SQL和PL/SQL集成:PL/SQL支持所有SQL语法,包括DML和DDL。 - CASE语句和表达式:提供条件判断的灵活性。 - 类型进化:允许数据类型的演变和扩展。 - 日期/时间类型:增强的日期和时间处理功能。 - 本地编译:...
同时,它支持批量执行,极大地提高了工作效率。在处理大数据量时,SQLTool的性能表现优秀,确保了数据操作的高效性。 在DDL方面,SQLTool具备丰富的数据库设计功能。用户可以创建和修改表结构,设置约束,管理索引...
6. **DDL与DML操作**:通过动态执行DDL(数据定义语言)和DML(数据操纵语言)语句,例如CREATE TABLE、INSERT INTO等,可以自动化创建表结构并填充数据。 7. **GoldenGate**:Oracle GoldenGate提供实时数据复制...
- **runsql.sql**:这是一个SQL脚本文件,通常用于执行特定的数据库操作,如创建表、插入数据或执行DDL/DML语句。在数据库同步过程中,这类脚本可能包含用于更新目标数据库的SQL命令。 五、维护与优化 1. **监控与...
这款工具不仅实现了基本的数据库查询、字段信息查看,还具备了执行DDL和DML语句的功能,并具有语句修正的智能特性,极大地提升了数据库管理的效率。 首先,Spring Boot是Java生态系统中的一个热门框架,以其快速...
1. SQL脚本编写和执行:理解SQL语言的基本语法和命令,如DDL(Data Definition Language)和DML(Data Manipulation Language)。 2. 批处理概念:批量执行SQL脚本以提高效率和自动化流程。 3. 错误处理和调试:识别...
Oracle 并行度是Oracle数据库系统中的一种优化技术,它允许大数据操作如DDL(数据定义语言)和DML(数据操纵语言)通过多个并行进程同时执行,以提高处理速度和利用系统资源。并行度是指在一个操作中同时运行的进程...
3. **第3章 SQL Server的DDL与DML**:DDL(Data Definition Language)用于定义数据库结构,如创建、修改和删除表、视图等对象。DML(Data Manipulation Language)用于操纵数据,包括插入、更新和删除记录。此章将...
2. **SQL编辑与执行**:内置的SQL编辑器允许用户编写和执行SQL查询语句,支持复杂的SELECT、INSERT、UPDATE、DELETE以及CREATE TABLE、ALTER TABLE等DDL和DML操作。 3. **数据编辑**:用户可以直接在表格视图中编辑...
在使用DML和DDL语句时,需要注意以下几点: - DML语句会锁定表行,确保提交(COMMIT)或回滚(ROLLBACK)事务。 - 对大量记录进行操作时,应限制每次操作的数量,避免长时间锁定或资源消耗过大。 - 避免在业务高峰期...