JdbcTemplate用的时候发现一个问题:调用queryForObject()方法,如果没有查到东西则会抛一个异常:org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 不希望抛出此异常,而是返回为null就行了. public <T> T queryForObject(String sql, Object[] args, RowMapper&l…
注:本文来源于<  spring jdbctemplate调用存储过程,返回list对象 > spring jdbctemplate调用存储过程,返回list对象 方法: /** * 调用存储过程 * @param spName */ @SuppressWarnings("unchecked") public List<HashMap<String, Object>> executeSP(String procedure) { //procedure…
在使用Spirng提供的JdbcTemplate中名为queryForObject API进行数据库查询时有时会抛出如下异常: org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 (不正确的结果大小,预期是1,实际为0) 或者: org.springframework.dao.IncorrectResultSizeDataAccessExceptio…
由于在Spring定时器中无法通过注解的方式获取bean,因此需要通过原生的方式获取.获取session的方式如下: WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();  SessionFactory factory=wac.getBean(SessionFactory.class); Session session=factory.openSession();…
遇到调用存储过程的业务,以前有用过,但不是用Spring的 JdbcTemplate去做的,这次是在一个已经有的SpringMVC框架的项目下写处理存储过程的. 参考网络中的方法,在实际操作中遇到两个问题: 1 存储过程的参数问题 ,原本以为只要传对应的入参就可以,即每个入参占用一个?,在报错后检查发现,出参也要占用一个?: 2连接数据库,这个是开始没有注意,但很快就发现了. 完成这个存储过程调用的代码 int  param2Value = (Integer ) jdbcTemplate.exe…
package cn.com.git.htsc.uac.core.repository.report; import cn.com.git.htsc.uac.core.api.dto.report.ReportCampaignDayOutDTO; import oracle.jdbc.OracleTypes; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc…
公司同事在定位一个bug时,发现spring默认的事务只支持运行时异常的回滚,对于像SQLException这样的非运行时异常,默认的事务机制不能处理,于是找了下解决的办法:    1.在捕获SQLException的时候,抛出一个RuntimeException及其子类,例如:     try {               xxx        } catch (Exception e) {               throw new ModuleException();       }…
原文地址:Spring JdbcTemplate 查询结果集Map反向生成Java实体 以前写过一篇文章吐槽过Spring JdbcTemplate的queryForList方法(参见:http://blog.csdn.net/will_awoke/article/details/12617383),因为这个方法只支持单数据类型泛型实体,而想返回自定义实体时还得自己写callback方法,笔者不想在每个返回自定义实体的query方法中都去写callback处理返回的map,于是索性就自己造了个轮…
最近在项目中使用到了 Spring 的 JdbcTemplate, 中间遇到了好多坑, 所以花一些时间对 JdbcTemplate 的使用做了一个总结, 方便以后自己的查看.文章中贴出来的API都是经过测试的, 可以放心大胆的拿去用. 概述 JdbcTemplate主要提供4种方法: call()方法: 用于执行存储过程.存储函数 execute()方法: 可以执行任何SQL语句, 一般用于DDL语句 update()和batchUpdate()方法: 分别对应单个更新.批量更新的语句执行 qu…
通知类型: 步骤: 1. 定义接口 2. 编写对象(被代理对象=目标对象) 3. 编写通知(前置通知目标方法调用前调用) 4. 在beans.xml文件配置 4.1 配置 被代理对象=目标对象 4.2 配置通知 4.3 配置代理对象 是 ProxyFactoryBean的对象实例 4.3.1 <!-- 代理接口集 --> 4.3.2 织入通知 4.3.3 配置被代理对象 本实例: 1.基本信息: 包名:com.aop 两个接口类:TestServiceInter.java:TestServic…