| package com.matrix.core.simpleDao; | 
|   | 
| import java.util.List; | 
|   | 
| import javax.annotation.Resource; | 
|   | 
| import org.apache.ibatis.session.ExecutorType; | 
| import org.apache.ibatis.session.SqlSession; | 
| import org.apache.ibatis.session.SqlSessionFactory; | 
| import org.mybatis.spring.SqlSessionTemplate; | 
| import org.springframework.stereotype.Repository; | 
|   | 
| public class DaoSupport implements DAO { | 
|   | 
|     @Resource(name = "sqlSessionTemplate") | 
|     private SqlSessionTemplate sqlSessionTemplate; | 
|      | 
|     /** | 
|      * 保存对象 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object save(String str, Object obj){ | 
|         return sqlSessionTemplate.insert(str, obj); | 
|     } | 
|      | 
|     /** | 
|      * 批量更新 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object batchSave(String str, List<Object> objs ){ | 
|         return sqlSessionTemplate.insert(str, objs); | 
|     } | 
|      | 
|     /** | 
|      * 修改对象 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object update(String str, Object obj)  { | 
|         return sqlSessionTemplate.update(str, obj); | 
|     } | 
|   | 
|     /** | 
|      * 批量更新 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public void batchUpdate(String str, List<Object> objs ){ | 
|         SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory(); | 
|         //批量执行器 | 
|         SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false); | 
|         try{ | 
|             if(objs!=null){ | 
|                 for(int i=0,size=objs.size();i<size;i++){ | 
|                     sqlSession.update(str, objs.get(i)); | 
|                 } | 
|                 sqlSession.flushStatements(); | 
|                 sqlSession.commit(); | 
|                 sqlSession.clearCache(); | 
|             } | 
|         }finally{ | 
|             sqlSession.close(); | 
|         } | 
|     } | 
|      | 
|     /** | 
|      * 批量更新 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object batchDelete(String str, List<Object> objs ){ | 
|         return sqlSessionTemplate.delete(str, objs); | 
|     } | 
|      | 
|     /** | 
|      * 删除对象  | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object delete(String str, Object obj)  { | 
|         return sqlSessionTemplate.delete(str, obj); | 
|     } | 
|       | 
|     /** | 
|      * 查找对象 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public Object findForObject(String str, Object obj)  { | 
|         return sqlSessionTemplate.selectOne(str, obj); | 
|     } | 
|   | 
|     /** | 
|      * 查找对象 | 
|      * @param str | 
|      * @param obj | 
|      * @return | 
|      * @ | 
|      */ | 
|     public List<Object> findForList(String str, Object obj)  { | 
|         return sqlSessionTemplate.selectList(str, obj); | 
|     } | 
|      | 
|     public Object findForMap(String str, Object obj, String key, String value)  { | 
|         return sqlSessionTemplate.selectMap(str, obj, key); | 
|     } | 
|      | 
| } |