Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值插入sqlite DB的最佳方式_Java_Sqlite_Jdbc - Fatal编程技术网

Java 将值插入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

下面的方法是将记录插入sqlite数据库表,我知道这个方法将从循环内部被多次调用

我的问题是,下面的代码是向DB表中插入值的最佳方式吗?或者有更好的方法,因为时间和性能很重要

敬请指教

代码

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)的,因此它们对您绝对有好处。