Ibatis,Spring註解方式注入sqlMapClien

pom.xml

<dependency>
    <groupId>org.apache.ibatis</groupId>
    <artifactId>ibatis-sqlmap</artifactId>
    <version>2.3.4.726</version>
</dependency>

Spring-config.xml

<!-- sqlMapCLient -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation" value="classpath:sqlmap-config.xml"/>
    <property name="dataSource" ref="dataSource" />
</bean>
<!-- Spring bean configuration. Tell Spring to bounce off BoneCP -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <!-- BoneCP type -->
    <property name="driverClassName" value="${jdbc.driverClass}" />
    <property name="url" value="${jdbc.jdbcUrl}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

BaseDao.java

package com.tq365.samples.ibatis.dao;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.ibatis.sqlmap.client.SqlMapClient;
/**
 * BaseDao,Dao需繼承此Dao
 * @author archie2010
 * since 2011-3-3 下午02:52:36
 */
public class BaseDao extends SqlMapClientDaoSupport{
    @Resource(name = "sqlMapClient")
    private SqlMapClient sqlMapClient;
    @PostConstruct
        public void initSqlMapClient(){
         super.setSqlMapClient(sqlMapClient);
    }
}

@PostConstruct註解
   在方法上加上註解@PostConstruct,這個方法就會在Bean初始化之後被Spring容器執行(注:Bean初始化包括,實例化Bean,並裝配Bean的屬性(依賴注入))。它的一個典型的應用場景是,當你需要往Bean裏注入一個其父類中定義的屬性,而你又無法複寫父類的屬性或屬性的setter方法時

UserDAOimpl.java

import org.springframework.stereotype.Component;
import com.tq365.samples.ibatis.model.User;
import com.tq365.sqmples.util.Pages;
/**
 * UserDAO接口實現類
 * @author archie2010
 * since 2011-3-3 下午02:54:57
 */
@Component("userDAO")
public class UserDAOimpl extends BaseDao implements UserDAO{
    public User findUserById(int id){
        return (User) getSqlMapClientTemplate().queryForObject("findUserById", id);
    }
    /**
     * 添加User
     */
    public void addUser(User user) {
        getSqlMapClientTemplate().insert("addUser", user);
    }
    /**
     * 刪除User
     */
    public void deleteUserById(int id) {
        getSqlMapClientTemplate().delete("deleteUserById", id);
    }
    /**
     * 查找User
     */
    public User findUser(User user) {
        return (User) getSqlMapClientTemplate().queryForObject("findUser", user);
    }
    public int getTotalCountByUsername(String username){
        return (Integer) getSqlMapClientTemplate().queryForObject("getTotalCountByUsername", username);
    }
    /**
     * User分頁
     */
    @SuppressWarnings("unchecked")
    public Pages<User> findUsersByUsername(String username,int pageNo) {
        Pages<User> pages=new Pages<User>(getTotalCountByUsername(username));
        pages.setPageSize(5);
                                                                              
        List<User> userList=new ArrayList<User>();
                                                                              
        Map<String, Object> map=new HashMap<String, Object>();
        map.put("username", username);
        map.put("start", pages.getStart(pageNo));
                                                                              
        userList=(List<User>) getSqlMapClientTemplate().queryForObject("findUsersByUsername", map);
        pages.setPageList(userList);
                                                                              
        return pages;
    }
    /**
     * 查詢所有記錄
     * @return
     */
    public int getTotalCount(){
        return (Integer) getSqlMapClientTemplate().queryForObject("getTotalCount");
    }
    @SuppressWarnings("unchecked")
    public Pages<User> findAllPageUser(int pageNo){
        Pages<User> pages=new Pages<User>(getTotalCount());
        pages.setPageSize(5);
                                                                              
        List<User> userList=new ArrayList<User>();
                                                                              
        userList=(List<User>) getSqlMapClientTemplate().queryForList("findAllPageUser", pages.getStart(pageNo));
        pages.setPageList(userList);
                                                                              
        return pages;
    }
                                                                          
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章