Ibatis,Spring注解方式注入sqlMapClient

BaseDao.java

[java] view plaincopy
  1. package com.tq365.samples.ibatis.dao;  
  2. import javax.annotation.PostConstruct;  
  3. import javax.annotation.Resource;  
  4. import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;  
  5. import com.ibatis.sqlmap.client.SqlMapClient;  
  6. /** 
  7.  * BaseDao,Dao需继承此Dao 
  8.  * @author archie2010 
  9.  * since 2011-3-3 下午02:52:36 
  10.  */  
  11. public class BaseDao extends SqlMapClientDaoSupport{  
  12.     @Resource(name = "sqlMapClient")  
  13.     private SqlMapClient sqlMapClient;  
  14.     @PostConstruct  
  15.         public void initSqlMapClient(){  
  16.          super.setSqlMapClient(sqlMapClient);  
  17.     }   
  18. }  

@PostConstruct注解 
    在方法上加上注解@PostConstruct,这个方法就会在Bean初始化之后被Spring容器执行(注:Bean初始化包括,实例化Bean,并 装配Bean的属性(依赖注入))。它的一个典型的应用场景是,当你需要往Bean里注入一个其父类中定义的属性,而你又无法复写父类的属性或属性的 setter方法时

 

UserDAOimpl.java

[java] view plaincopy
  1. import org.springframework.stereotype.Component;  
  2. import com.tq365.samples.ibatis.model.User;  
  3. import com.tq365.sqmples.util.Pages;  
  4. /** 
  5.  * UserDAO接口实现类 
  6.  * @author archie2010 
  7.  * since 2011-3-3 下午02:54:57 
  8.  */  
  9. @Component("userDAO")  
  10. public class UserDAOimpl extends BaseDao implements UserDAO{  
  11.     public User findUserById(int id){  
  12.         return (User) getSqlMapClientTemplate().queryForObject("findUserById", id);  
  13.     }  
  14.     /** 
  15.      * 添加User 
  16.      */  
  17.     public void addUser(User user) {  
  18.         getSqlMapClientTemplate().insert("addUser", user);  
  19.     }  
  20.     /** 
  21.      * 删除User 
  22.      */  
  23.     public void deleteUserById(int id) {  
  24.         getSqlMapClientTemplate().delete("deleteUserById", id);  
  25.     }  
  26.     /** 
  27.      * 查找User 
  28.      */  
  29.     public User findUser(User user) {  
  30.         return (User) getSqlMapClientTemplate().queryForObject("findUser", user);  
  31.     }  
  32.     public int getTotalCountByUsername(String username){  
  33.         return (Integer) getSqlMapClientTemplate().queryForObject("getTotalCountByUsername", username);  
  34.     }  
  35.     /** 
  36.      * User分页 
  37.      */  
  38.     @SuppressWarnings("unchecked")  
  39.     public Pages<User> findUsersByUsername(String username,int pageNo) {  
  40.         Pages<User> pages=new Pages<User>(getTotalCountByUsername(username));  
  41.         pages.setPageSize(5);  
  42.           
  43.         List<User> userList=new ArrayList<User>();  
  44.           
  45.         Map<String, Object> map=new HashMap<String, Object>();  
  46.         map.put("username", username);  
  47.         map.put("start", pages.getStart(pageNo));  
  48.           
  49.         userList=(List<User>) getSqlMapClientTemplate().queryForObject("findUsersByUsername", map);  
  50.         pages.setPageList(userList);  
  51.           
  52.         return pages;  
  53.     }  
  54.     /** 
  55.      * 查询所有记录 
  56.      * @return 
  57.      */  
  58.     public int getTotalCount(){  
  59.         return (Integer) getSqlMapClientTemplate().queryForObject("getTotalCount");  
  60.     }  
  61.     @SuppressWarnings("unchecked")  
  62.     public Pages<User> findAllPageUser(int pageNo){  
  63.         Pages<User> pages=new Pages<User>(getTotalCount());  
  64.         pages.setPageSize(5);  
  65.           
  66.         List<User> userList=new ArrayList<User>();  
  67.           
  68.         userList=(List<User>) getSqlMapClientTemplate().queryForList("findAllPageUser", pages.getStart(pageNo));  
  69.         pages.setPageList(userList);  
  70.           
  71.         return pages;  
  72.     }  
  73.       
  74. }  

你可能感兴趣的:(Ibatis,Spring注解方式注入sqlMapClient)