Java 将值插入sqlite DB的最佳方式
下面的方法是将记录插入sqlite数据库表,我知道这个方法将从循环内部被多次调用 我的问题是,下面的代码是向DB表中插入值的最佳方式吗?或者有更好的方法,因为时间和性能很重要 敬请指教 代码:Java 将值插入sqlite DB的最佳方式,java,sqlite,jdbc,Java,Sqlite,Jdbc,下面的方法是将记录插入sqlite数据库表,我知道这个方法将从循环内部被多次调用 我的问题是,下面的代码是向DB表中插入值的最佳方式吗?或者有更好的方法,因为时间和性能很重要 敬请指教 代码: public void insertValues(String name, int age, String address, String gender) throws SQLException, ClassNotFoundException { Connection conn = getConn
public void insertValues(String name, int age, String address, String gender) throws SQLException, ClassNotFoundException {
Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement("insert into "+TABLE_NAME+" ("+COL_1+", "+COL_2+", "+COL_3+", "+COL_4+") values (?, ?, ?, ?)");
ps.setString(1, name);
ps.setLong(2, age);
ps.setString(3, address);
ps.setString(4, gender);
ps.addBatch();
ps.executeBatch();
ps.close();
conn.close();
}
您应该使用连接池,而不是为每个插入打开新连接。为每个查询创建全新的连接会增加大量开销——在大多数情况下,打开连接所需的时间比实际查询执行时间要长
如果使用Spring,请考虑使用Spring Bug,然后查看详细信息。
SpringBoot将为您自动配置连接池-您只需要将JAR添加到类路径中。有关详细教程,请参见JDCBT模板提供了访问SQL数据库的好方法(您也可以考虑Spring数据,更容易)。要么传递多个值,准备批处理并执行一次。现在您正在批量添加单个查询并执行它。@NamanGala,请提供一个示例。不要传递单个名称、年龄、地址、性别,而是传递dto列表。在该dto中,您可以设置这4个值。然后在方法中迭代该列表,并在迭代中执行addBatch,迭代结束后,可以调用executeBatch。@NamanGala什么是dto?dto是数据传输对象。这是一个简单的pojo(普通的旧java对象),具有属性(姓名、年龄、地址、性别)和getter和setterwould请提供一个例子?我使用的是sqlite java,我使用的是java而不是android,我还可以使用Spring连接池吗?我推荐Spring用于每个非平凡的java项目(非平凡=超过500行的生产代码)。我提供的示例是针对javase(而不是Android)的,因此它们对您绝对有好处。