Terry.Li-彬

虚其心,可解天下之问;专其心,可治天下之学;静其心,可悟天下之理;恒其心,可成天下之业。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  143 随笔 :: 344 文章 :: 130 评论 :: 0 Trackbacks
3.4. 持久层在讨论业务层之前,我们先看一下持久层,如下图所示:



在上文中,我们把iface包下的DAO接口归为业务层,在这里不需要做修改。ibatis的sql配置文件也不需要改。要改的是DAO实现类,并在spring的配置文件中配置起来。

1、修改基类

所有的DAO实现类都继承于BaseSqlMapDao类。修改BaseSqlMapDao类如下:

public class BaseSqlMapDao extends SqlMapClientDaoSupport
            {
            protected static final int PAGE_SIZE = 4;
            protected SqlMapClientTemplate smcTemplate
            = this.getSqlMapClientTemplate();
            public BaseSqlMapDao()
            {
            }
            }


使BaseSqlMapDao类改为继承于Spring提供的SqlMapClientDaoSupport类,并定义了一个保护属性smcTemplate,其类型为SqlMapClientTemplate。

2、修改DAO实现类

所有的DAO实现类还是继承于BaseSqlMapDao类,实现相应的DAO接口,但其相应的DAO操作委托SqlMapClientTemplate来执行,以AccountSqlMapDao类为例,部分代码如下:

public List getUsernameList()
            {
            return smcTemplate.queryForList("getUsernameList", null);
            }
            public Account getAccount(String username, String password)
            {
            Account account = new Account();
            account.setUsername(username);
            account.setPassword(password);
            return (Account)
            smcTemplate.queryForObject
            ("getAccountByUsernameAndPassword", account);
            }
            public void insertAccount(Account account)
            {
            smcTemplate.update("insertAccount", account);
            smcTemplate.update("insertProfile", account);
            smcTemplate.update("insertSignon", account);
            }


就这么简单,所有函数的签名都是一样的,只需要查找替换就可以了!
posted on 2007-12-05 16:02 礼物 阅读(349) 评论(0)  编辑  收藏 所属分类: ibatis + spring