将值插入sqlite DB的最佳方法

时间:2015-08-10 10:41:23

标签: java sqlite jdbc

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

我的问题是,下面的代码是将值插入数据库表的最佳方法吗?或者可能有更好的方法,因为时间和性能很重要。

请帮忙。

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();
}

1 个答案:

答案 0 :(得分:1)

您应该使用连接池,而不是为每个插入打开新连接。为每个查询创建全新的连接会增加显着的开销 - 在大多数情况下,打开连接所需的时间比实际的查询执行时间长。

如果您使用的是Spring,请考虑使用Spring Boot,然后查看http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-database了解详细信息。

Spring boot会自动为您配置连接池 - 您只需要将jar添加到classpath。有关详细教程,请参阅 https://spring.io/guides/gs/relational-data-access/ JdbcTemplate提供了访问SQL数据库的好方法(您也可以考虑使用Spring Data,它更容易)。