Spring - MyBatis CommonDao

1, 公共Dao 

package com.gy.spring.mvc.common.dao;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@Repository
public class CommonDao<T> extends SqlSessionDaoSupport {

    @Autowired
    public CommonDao(SqlSessionFactory sqlSessionFactory) {
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    /**
     * 查詢 List 數據, 參數 Object
     * */
    public List<T> list(String sqlId, Object params) {
        return getSqlSession().selectList(sqlId, params);
    }
    /**
     * 查詢一條數據, 參數 Object
     * */
    public T get(String sqlId, Object params) {
        return getSqlSession().selectOne(sqlId, params);
    }
    /**
     * 新增, 參數 Object
     * */
    public void insert(String sqlId, Object params) {
        getSqlSession().insert(sqlId, params);
    }
    /**
     * 編輯, 參數 Object
     * */
    public void update(String sqlId, Object params) {
        getSqlSession().update(sqlId, params);
    }
    /**
     * 刪除, 參數 Object
     * */
    public void delete(String sqlId, Object params) {
        getSqlSession().delete(sqlId, params);
    }
}

2, 注意該類是否聲明到spring容器中,若未聲明:

<!-- CommonDao 公共Dao查詢, 已通過 @Repository 註解聲明, 此處不用聲明 -->
	<!--<bean id="sqlSession" class="com.gy.spring.mvc.common.dao.CommonDao">-->
		<!--<property name="sqlSessionFactory" ref="sqlSessionFactory"/>-->
	<!--</bean>-->

3, service 中使用

@Service
public class UserServiceImpl implements UserService {

	@Autowired
	private CommonDao<User> userMapper;

	@Override
	public List listUser() {
		return userMapper.list("UserMapper.listUser", null);
	}

}

4, SQL

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UserMapper">

	<select id="listUser" resultType="com.gy.spring.mvc.entity.User">
		SELECT user_id, username, password, birthday, create_time FROM `user`
	</select>

</mapper>

5, 作用, 減少Mapper接口開發..

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