gpt4 book ai didi

java - 通过 JDBCTemplate 使用准备好的语句

转载 作者:IT老高 更新时间:2023-10-28 13:46:43 24 4
gpt4 key购买 nike

我正在使用 JDBC 模板并希望使用准备好的语句从数据库中读取数据。我遍历 .csv 文件中的多行,并在每一行上执行一些带有相应值的 SQL 选择查询。

我想加快从数据库中读取的速度,但我不知道如何让 JDBC 模板与准备好的语句一起工作。

PreparedStatementCreatorPreparedStatementSetter .如 this example它们都是用匿名内部类创建的。但是在 PreparedStatementSetter 类中,我无法访问我想在准备好的语句中设置的值。

由于我正在遍历 .csv 文件,因此我无法将它们硬编码为字符串,因为我不认识它们。我也无法将它们传递给 PreparedStatementSetter,因为构造函数没有参数。将我的值设置为 final 也是愚蠢的。

我习惯于创建相当简单的预准备语句。像

PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate():

就像这个 Java tutorial .

最佳答案

默认情况下,JDBCTemplate自己做PreparedStatement在内部,如果您只使用 .update(String sql, Object ... args)形式。 Spring 和你的数据库会为你管理编译好的查询,所以你不用担心打开、关闭、资源保护等问题。这是 Spring 的一大优点。 A link to Spring 2.5's documentation on this.希望它能让事情更清楚。此外,语句缓存可以在 JDBC 级别完成,如 at least some of Oracle's JDBC drivers. 的情况。这将比我能胜任的要详细得多。

关于java - 通过 JDBCTemplate 使用准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2989245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com