我正在使用 JDBC 模板,并希望使用准备好的语句从数据库中读取数据。我迭代 .csv 文件中的多行,并在每一行上使用相应的值执行一些 SQL 选择查询。
我想加快从数据库的读取速度,但我不知道如何让 JDBC 模板与准备好的语句一起使用。
有的是准备语句创建者 http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/core/PreparedStatementCreator.html和准备语句设置器 http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/core/PreparedStatementSetter.html. As in 这个例子 http://www.java2s.com/Code/Java/Spring/PreparedStatementCreatorAndPreparedStatementSetter.htm它们都是用匿名内部类创建的。
但在PreparedStatementSetter 类中,我无法访问要在准备好的语句中设置的值。
由于我正在迭代 .csv 文件,因此我无法将它们硬编码为字符串,因为我不知道它们。
我也无法将它们传递给PreparedStatementSetter,因为构造函数没有参数。将我的值设置为最终值也很愚蠢。
我习惯于创建相当简单的准备好的语句。就像是
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate():
就像在这个Java教程 http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html.
默认情况下,JDBCTemplate
做自己的PreparedStatement
在内部,如果你只是使用.update(String sql, Object ... args)
形式。 Spring 和您的数据库将为您管理已编译的查询,因此您不必担心打开、关闭、资源保护等问题。这是 Spring 的优点之一。Spring 2.5 相关文档的链接。 http://docs.spring.io/spring/docs/2.5.6/api/org/springframework/jdbc/core/JdbcTemplate.html#query%28java.lang.String,%20java.lang.Object%5B%5D,%20int%5B%5D,%20org.springframework.jdbc.core.RowMapper%29希望它能让事情变得更清楚。此外,语句缓存可以在 JDBC 级别完成,如以下情况所示至少有一些 Oracle 的 JDBC 驱动程序。 http://docs.oracle.com/cd/B10501_01/java.920/a96654/stmtcach.htm这将比我能胜任的更详细。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)