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接口开发..