Questions tagged «jdbctemplate»

5
如何使用Spring的JDBCTemplate有效执行IN()SQL查询?
我想知道是否有使用Spring的JDBCTemplate进行IN()查询的更优雅的方法。目前,我正在执行以下操作: StringBuilder jobTypeInClauseBuilder = new StringBuilder(); for(int i = 0; i < jobTypes.length; i++) { Type jobType = jobTypes[i]; if(i != 0) { jobTypeInClauseBuilder.append(','); } jobTypeInClauseBuilder.append(jobType.convert()); } 这是很痛苦的,因为如果我只有九行用于为IN()查询构建子句。我想要类似预准备语句的参数替换
177 java  sql  spring  jdbc  jdbctemplate 

16
Jdbctemplate查询字符串:EmptyResultDataAccessException:错误的结果大小:预期为1,实际为0
我正在使用Jdbctemplate从数据库中检索单个String值。这是我的方法。 public String test() { String cert=null; String sql = "select ID_NMB_SRZ from codb_owner.TR_LTM_SLS_RTN where id_str_rt = '999' and ID_NMB_SRZ = '60230009999999'"; cert = (String) jdbc.queryForObject(sql, String.class); return cert; } 在我的情况下,完全可以在查询中不击中,所以我的问题是如何解决以下错误消息。 EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 在我看来,我应该只返回null而不是抛出异常。我怎样才能解决这个问题?提前致谢。

6
JdbcTemplate queryForInt / Long在Spring 3.2.2中已弃用。应该用什么代替?
Spring 3.2中不推荐使用JdbcTemplate中的queryforInt / queryforLong方法。我找不到使用这些方法替换现有代码的最佳实践的理由或理由。 典型方法: int rowCount = jscoreJdbcTemplate.queryForInt( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", playerNameKey.toUpperCase(), teamNameKey.toUpperCase() ); 确定以上方法需要重新编写如下: Object[] params = new Object[] { playerNameKey.toUpperCase(), teamNameKey.toUpperCase() }; int rowCount = jscoreJdbcTemplate.queryForObject( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", …

5
JPA与Spring JdbcTemplate [关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 10个月前关闭。 改善这个问题 对于新项目,JPA始终是推荐的用于处理关系数据的工具吗?或者在某些情况下,Spring JdbcTemplate是更好的选择?您的回应中应考虑以下因素: 新数据库架构与现有架构和表 开发人员专业知识水平 易于与数据缓存层集成 性能 还有其他需要考虑的因素吗?

4
用于调用存储过程的Spring JDBC模板
使用现代(大约在2012年)Spring JDBC模板调用存储过程的正确方法是什么? 说,我有一个同时声明IN和OUT参数的存储过程,如下所示: mypkg.doSomething( id OUT int, name IN String, date IN Date ) 我遇到过CallableStatementCreator基于方法,我们必须显式注册IN和OUT参数化。在JdbcTemplate课堂上考虑以下方法: public Map<String, Object> call(CallableStatementCreator csc, List<SqlParameter> declaredParameters) 当然,我知道我可以这样使用它: List<SqlParameter> declaredParameters = new ArrayList<SqlParameter>(); declaredParameters.add(new SqlOutParameter("id", Types.INTEGER)); declaredParameters.add(new SqlParameter("name", Types.VARCHAR)); declaredParameters.add(new SqlParameter("date", Types.DATE)); this.jdbcTemplate.call(new CallableStatementCreator() { @Override CallableStatement createCallableStatement(Connection con) throws SQLException { CallableStatement stmnt = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.