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接口開發..