SqlSessionTemplate 批量增、删、改、查

Love The Way You Lie 2024-03-23 11:06 144阅读 0赞
创建类
  1. package cn.tedu.ff_server.mybatis;
  2. import org.apache.ibatis.session.ExecutorType;
  3. import org.apache.ibatis.session.ResultHandler;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.mybatis.spring.SqlSessionTemplate;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Component;
  9. import java.util.List;
  10. @Component
  11. public class SqlBatchTemp {
  12. @Autowired
  13. private SqlSessionTemplate sqlSessionTemplate;
  14. public void batchInsert(String nameSpace, List objs) {
  15. SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
  16. //批量执行器
  17. SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
  18. try{
  19. if(objs!=null){
  20. for(int i=0,size=objs.size();i<size;i++){
  21. sqlSession.insert(nameSpace, objs.get(i));
  22. }
  23. sqlSession.flushStatements();
  24. sqlSession.commit();
  25. sqlSession.clearCache();
  26. }
  27. }finally{
  28. sqlSession.close();
  29. }
  30. }
  31. public void batchUpdate(String nameSpace, List objs) {
  32. SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
  33. //批量执行器
  34. SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
  35. try{
  36. if(objs!=null){
  37. for(int i=0,size=objs.size();i<size;i++){
  38. sqlSession.update(nameSpace, objs.get(i));
  39. }
  40. sqlSession.flushStatements();
  41. sqlSession.commit();
  42. sqlSession.clearCache();
  43. }
  44. }finally{
  45. sqlSession.close();
  46. }
  47. }
  48. public void batchDelete(String nameSpace, List objs ) {
  49. SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
  50. //批量执行器
  51. SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
  52. try{
  53. if(objs!=null){
  54. for(int i=0,size=objs.size();i<size;i++){
  55. sqlSession.delete(nameSpace, objs.get(i));
  56. }
  57. sqlSession.flushStatements();
  58. sqlSession.commit();
  59. sqlSession.clearCache();
  60. }
  61. }finally{
  62. sqlSession.close();
  63. }
  64. }
  65. public void batchSelect(String nameSpace, List objs ) {
  66. SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
  67. //批量执行器
  68. SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
  69. try{
  70. if(objs!=null){
  71. for(int i=0,size=objs.size();i<size;i++){
  72. sqlSession.select(nameSpace, (ResultHandler) objs.get(i));
  73. }
  74. sqlSession.flushStatements();
  75. sqlSession.commit();
  76. sqlSession.clearCache();
  77. }
  78. }finally{
  79. sqlSession.close();
  80. }
  81. }
  82. }
在mapper.xml里
  1. <delete id="deleteById">
  2. DELETE FROM category WHERE id = #{id}
  3. </delete>
在servieceImpl 里调用
  1. @Service
  2. public class CategoryServiceImpl implements CategoryService {
  3. @Autowired
  4. SqlBatchTemp sqlBatchTemp;
  5. @Override
  6. public void deleteBatch(List<Long> ids) {
  7. sqlBatchTemp.batchDelete("cn.tedu.ff_server.mapper.CategoryMapper.deleteById", ids);
  8. }
  9. }

发表评论

表情:
评论列表 (有 0 条评论,144人围观)

还没有评论,来说两句吧...

相关阅读