Tag: jdbctemplate

从sql插入通过jdbctemplate的身份

是否有可能从SQL插入的Spring jdbc模板调用中获取@@ identity? 如果是这样,怎么样?

JPA vs Spring JdbcTemplate

对于一个新的项目来说,JPA总是处理关系数据的推荐工具,或者Spring JdbcTemplate是一个更好的select吗? 您的回复中需要考虑的一些因素: 新的数据库模式vs预先存在的模式和表 开发人员的专业水平 易于与数据caching层集成 性能 还有其他相关因素需要考虑?

用于调用存储过程的Spring JDBC模板

使用现代date调用存储过程的正确方法是什么(大约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 = con.createCall("{mypkg.doSomething(?, ?, ?)}"); stmnt.registerOutParameter("id", […]

Jdbctemplate查询string: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 在我看来,我应该回来一个空,而不是抛出一个exception。 我怎样才能解决这个问题? 提前致谢。

在Spring 3.2.2中不build议使用JdbcTemplate queryForInt / Long。 它应该被什么取代?

Spring 3.2中不推荐使用JdbcTemplate中的queryforInt / queryforLong方法。 我找不到为什么或什么被认为是使用这些方法取代现有代码的最佳实践。 一个典型的方法: int rowCount = jscoreJdbcTemplate.queryForInt( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", playerNameKey.toUpperCase(), teamNameKey.toUpperCase() ); OK上面的方法需要重写如下: Object[] params = new Object[] { playerNameKey.toUpperCase(), teamNameKey.toUpperCase() }; int rowCount = jscoreJdbcTemplate.queryForObject( "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?", params, Integer.class); 显然,这种弃用使得JdbcTemplate类变得更简单了(或者做到了?)。 QueryForInt总是一个方便的方法(我猜),已经有很长一段时间了。 […]

如何用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()查询构build子句。 我想有像预先准备的语句的参数replace的东西