帮我写个java代码,要求使用jdbc连接pgsql数据库进行批量插入
时间: 2023-08-02 19:06:15 浏览: 121
好的,以下是一个简单的使用JDBC连接PostgreSQL数据库进行批量插入的Java代码示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class BatchInsertDemo {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String username = "username";
String password = "password";
Connection conn = null;
PreparedStatement ps = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(url, username, password);
conn.setAutoCommit(false);
String sql = "INSERT INTO mytable (id, name) VALUES (?, ?)";
ps = conn.prepareStatement(sql);
for (int i = 1; i <= 1000; i++) {
ps.setInt(1, i);
ps.setString(2, "name" + i);
ps.addBatch();
}
int[] result = ps.executeBatch();
conn.commit();
System.out.println("Inserted " + result.length + " records successfully!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
try {
if (conn != null) {
conn.rollback();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} finally {
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在上面的代码示例中,我们假设有一张名为 `mytable` 的表,包含 `id` 和 `name` 两个字段。我们要将1000条记录批量插入到该表中。首先,我们使用 `DriverManager` 获取数据库连接,并关闭自动提交事务。然后,我们定义了一个SQL插入语句,并使用 `PreparedStatement` 对象进行批量参数设置和批量插入操作。最后,我们在try-catch-finally块中处理异常,并提交或回滚事务,最终关闭连接和预编译语句对象。
阅读全文