java - 将值插入 sqlite DB 的最佳方式

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

最佳答案

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

如果您正在使用 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 将为您自动配置连接池——您只需将 jars 添加到类路径即可。详细教程见 https://spring.io/guides/gs/relational-data-access/ JdbcTemplate 提供了访问 SQL 数据库的好方法(你也可以考虑 Spring Data,它更容易)。

关于java - 将值插入 sqlite DB 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31917464/

相关文章:

mysql - JDBC 驱动程序和 URL

sqlite - 如何将 SQLite 数据库文件导入 DbVisualizer

mysql - 如何使用Java根据最后5分钟的时间戳检索mysql数据

java - 创建一个与ArrayList具有类似功能的新类,添加值时出错?

java - 单元测试然后构建项目?或者? Java 的顺序是什么

android - 如何在android中使用intent仅选择sqlite db文件

python - 3个涉及Python和SQLite的问题

java - 如何使用 spring jdbc 存储过程将用户定义的数据类型变量的值从 java 传递到 MS SQL

java - 将 DefaultCategoryDataset 值写入文件

java - Maven log4j - 找不到记录器的附加程序