oracle中有一个表字段为TIMESTAMP类型java批量插入这张表中
时间: 2024-05-02 20:18:59 浏览: 192
可以使用PreparedStatement批量插入数据到Oracle表中,示例代码如下:
```
List<MyObject> dataList = new ArrayList<>(); //MyObject为自定义实体类
//假设已经将数据写入到dataList中
//获取数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
//设置自动提交为false
conn.setAutoCommit(false);
//创建PreparedStatement对象,使用占位符
String sql = "INSERT INTO my_table (id, name, create_time) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
//循环将数据插入到PreparedStatement中
for (MyObject obj : dataList) {
ps.setLong(1, obj.getId());
ps.setString(2, obj.getName());
ps.setTimestamp(3, new Timestamp(obj.getCreateTime().getTime()));
ps.addBatch();
}
//执行批处理
ps.executeBatch();
//提交事务
conn.commit();
//释放资源
ps.close();
conn.close();
```
需要注意的是,Oracle中的TIMESTAMP类型对应Java中的java.sql.Timestamp类型,需要使用Timestamp类来设置PreparedStatement中的参数。另外,为了提高性能,可以将多条插入语句放到一个批处理中执行,减少和数据库的交互次数。
阅读全文