首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring持久化的错误处理和模板类的介绍

2012-11-07 
Spring持久化的异常处理和模板类的介绍constructor-orgref beandataSource//constructor-arg /b

Spring持久化的异常处理和模板类的介绍
        <constructor-org><ref bean="dataSource"/></constructor-arg>
</bean>

HibernateTemplate配置与上相同,配置sessionFactory.把配置好的jdbcTemplate,hibernateTemplate注入到我们的DAO或业务类中,即可使用。但是通常我们有很多的DAO类或业务类,这样做的话我们每个类都要注入一次,解决这样的问题,我们可以把模板类放到父类中,子类调用即可。

这一切,spring已经都想到了,spring提供了JdbcDaoSupport,HibernateDaoSupport类,这两个类都是abstract class,不能实例化,我们的业务类继承这两个类,通过getJdbcTemplate(),getHibernateTemplate()方法即可得到对应的模板类。当然,我们首先要将模板类注入到这两个XXXDaoSupport类中。


<bean id = "jdbcDaoSupport"
class="org.springframework.jdbc.core.support.JdbcDaoSupport">
<property name="jdbcTemplate"><ref bean = "jdbcTemplate"/></property>
    </bean>

JdbcTemplate类用法:


getJdbcTemplate().query("select * from news",new RowCallBackHandler(){
           public void processRow(ResultSet rs ){....}
     }

    getJdbcTemplate().update(".....");

    getJdbcTemplate().update("update news set title=? where id=?",
    new PreparedStatementSetter(){
        public void setValue(PreparedStatement pstmt) throws SQLException{
            pstmt.setString("dd");
            pstmt.setInt(2);
       }
   }

   getHibernateTemplate().execute(new HibernateCallback(){
       public Object doInHibernate)(Session s) throws HibernateException {
           ......
       }
   }

HibernateTemplate用法:


getHibernateTemplate().execute(new HibernateCallback(){
      public Object doInHibernate(Session s) throws SQLException {
          return s.find("...");
      }
  }

在开发中直接使用这些模板,代码看起来可能不是很直观,本身这些模板只是为我们省了一些异常处理等代码,只是对原有hibernate session,jdbc connection,datasource的一个封装。所以,在实际开发中,为了灵活的使用模板,并充分发挥原有session等功能,还要封装一个BaseDao类,把常用CRUD、分页等操作封装供子类DAO调用。

(责任编辑:龚勋)

热点排行