import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class InertDB_batch {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("***************");
String buf = null;
BufferedReader in = null;
Statement stmt =null;
Connection con =null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoding=gb2312", "root", "root");
stmt = con.createStatement();
}catch(Exception e){
e.printStackTrace();
}
try {
in = new BufferedReader(new FileReader("insert.sql"));
buf = in.readLine();
System.out.println(buf);
} catch (FileNotFoundException e) {
new Exception("insert.sql File not exists!");
} catch (IOException e) {
e.printStackTrace();
}
while (buf != null) {
System.out.println(buf);
try {
//将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中
stmt.addBatch(buf);
buf = in.readLine();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try{
int []line = stmt.executeBatch();
for(int i=0;i<line.length;i++){
System.out.println("i = "+i);
}
//System.out.println(line);
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("***************");
System.out.println("完了!!");
}
}
分享到:
相关推荐
总结来说,Java的`addBatch`和`executeBatch`方法是JDBC中提高数据库操作性能的重要工具,它们允许我们在一次提交中执行多条SQL语句,适用于需要进行大量数据操作的场景。在实际开发中,合理运用批量处理可以显著...
批量处理主要涉及两个关键方法:`addBatch()`和`executeBatch()`,它们都是`java.sql.Statement`接口的成员。在Java程序中,我们通常使用`PreparedStatement`对象来执行预编译的SQL语句,因为它们提供更好的安全性,...
Statement对象支持两种执行模式:同步(默认)和异步(通过addBatch和executeBatch方法实现批处理)。 4. PreparedStatement:是Statement的子类,预编译SQL语句,提供更好的性能和安全性。它允许在SQL语句中使用...
在IT领域,特别是...通过合理设计代码结构,利用`PreparedStatement`的批处理功能,可以显著提升数据插入的速度和系统的整体性能。在实践中,还需注意细节如事务管理和异常处理,以确保数据完整性和系统的健壮性。
批处理是通过设置Statement对象的`addBatch()`方法和`executeBatch()`方法来实现的。下面是一个简单的示例: ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", ...
- 例如,在Java中可以使用JDBC的`addBatch()`方法来添加一系列的SQL语句到一个批处理中,然后使用`executeBatch()`方法一次性执行所有添加到批处理中的语句。 3. **操作系统级批处理**: - 在操作系统级别,可以...
- 通过循环遍历读取的Excel数据,填充`PreparedStatement`参数并执行批处理插入操作。 5. **示例代码分析** - 主函数`main()`启动程序,记录并输出整个过程的执行时间。 - `testRun()`函数负责读取指定目录下的...
10. **JDBC批处理API**: Hibernate底层使用JDBC的批处理API(Statement.addBatch()和Statement.executeBatch()),用户也可以直接使用JDBC批处理,绕过Hibernate的部分逻辑,获取更高的性能。 11. **性能优化注意...
批量处理主要通过`addBatch()`方法添加SQL语句到批处理队列,然后通过`executeBatch()`方法一次性执行所有已添加的SQL。 以下是一个简单的批量插入示例: ```java Connection conn = DriverManager.getConnection...
使用`addBatch()`和`executeBatch()`进行批处理 ```java Connection connection = new getConnection(); Statement statement = connection.createStatement(); for (String query : queries) { statement....
在JDBC中,批处理主要通过Statement或PreparedStatement对象的addBatch()方法来实现,然后通过executeBatch()方法执行整个批处理队列。 二、批处理的优势 1. 性能提升:批处理减少了网络传输的次数,因为多个SQL...
在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将多条插入语句一次性提交,减少与数据库的交互次数,从而提高效率。 Mybatis是一个轻量级的持久层框架,它简化了JDBC的复杂性,...
- **批处理**:使用PreparedStatement的addBatch()和executeBatch()方法,可以一次性提交多条SQL语句,减少与数据库的交互次数,提高效率。 - **事务管理**:在多表操作中,确保原子性、一致性、隔离性和持久性...
综上所述,Java使用JDBC进行批量插入数据是通过PreparedStatement的批处理功能实现的,通过设置手动提交和优化连接字符串,以及合理控制批量处理的大小和选择合适的数据库配置,可以有效地提高插入10万条或更多数据...
接下来,我们需要创建一个Java类来实现数据的读取和插入。首先,使用POI读取Excel文件中的数据。以下是一个基本示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel....
1. **批处理API**: JDBC提供了Statement接口的`addBatch()`方法用于添加待执行的SQL语句到批处理队列,`executeBatch()`方法用于执行整个批处理队列。PreparedStatement接口同样支持批处理,提供了一样的方法。 2. ...
Java中的批处理功能主要通过java.sql.Statement或java.sql.PreparedStatement对象的addBatch()和executeBatch()方法实现。这些方法允许程序员将多个SQL命令添加到一个批次中,然后一次性执行,从而减少了网络往返...
此外,避免在批处理中间插入其他非批处理操作,这会破坏批处理的连续性。 7. **PreparedStatement的优势**:相较于`Statement`,`PreparedStatement`更安全且性能更好,因为它能预编译SQL语句,减少解析和编译的...
批量更新的原理与批量插入类似,都是通过`PreparedStatement`的`addBatch()`方法将多个更新操作加入到一个批处理队列中,然后调用`executeBatch()`方法执行这些更新操作。这种方式可以显著减少网络往返次数,提高...