使用Oracle批量写入多条数据(oracle写入多条数据)

使用Oracle批量写入多条数据

在Oracle数据库中,如果需要一次性插入多条数据,可以使用批量写入的方式,这样可以大幅度提高插入数据的效率。使用批量写入方式,需要使用JDBC的批量插入功能。

下面是一个使用JDBC批量插入Oracle数据库的例子:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
public class BatchInsertOracle {
public static void mn(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String user = "username";
String password = "password";
Connection conn = null;
PreparedStatement pstmt = null;
ArrayList userList = new ArrayList();
userList.add(new User("张三", 20, "男"));
userList.add(new User("李四", 21, "男"));
userList.add(new User("王五", 22, "男"));

try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);

String sql = "insert into user(name, age, gender) values(?, ?, ?)";
pstmt = conn.prepareStatement(sql);
for (User user : userList) {
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.setString(3, user.getGender());
pstmt.addBatch();
}
pstmt.executeBatch();

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

static class User {
private String name;
private int age;
private String gender;
public User(String name, int age, String gender) {
super();
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

}
}

上面是一个示例代码,其中使用了ArrayList保存需要批量插入的数据,然后使用JDBC的批量插入功能insert into … values(?, ?, ?)语句添加的数据将自动批量插入到数据库中。

需要注意的是,JDBC的批量插入只能用于插入数据,而无法用于更新或删除数据。

在实际使用中,批量插入可以大幅度提高程序的执行效率。特别是在需要一次性插入大量数据的情况下,批量插入的优势更加明显。


数据运维技术 » 使用Oracle批量写入多条数据(oracle写入多条数据)