1, 公共Dao java
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容器中,若未聲明:spring
<!-- CommonDao 公共Dao查詢, 已經過 @Repository 註解聲明, 此處不用聲明 --> <!--<bean id="sqlSession" class="com.gy.spring.mvc.common.dao.CommonDao">--> <!--<property name="sqlSessionFactory" ref="sqlSessionFactory"/>--> <!--</bean>-->
3, service 中使用sql
@Service public class UserServiceImpl implements UserService { @Autowired private CommonDao<User> userMapper; @Override public List listUser() { return userMapper.list("UserMapper.listUser", null); } }
4, SQLapache
<?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接口開發..session