SqlRunnerAdapter.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.webserver.config;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4. import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
  5. import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
  6. import org.apache.ibatis.session.SqlSession;
  7. import org.apache.ibatis.session.SqlSessionFactory;
  8. import org.mybatis.spring.SqlSessionUtils;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. public class SqlRunnerAdapter extends SqlRunner {
  12. public SqlRunnerAdapter() {
  13. super();
  14. }
  15. @Override
  16. public <E extends IPage<Map<String, Object>>> E selectPage(E page, String sql, Object... args) {
  17. if (null == page) {
  18. return null;
  19. }
  20. SqlSession sqlSession = sqlSession();
  21. try {
  22. page.setRecords(sqlSession.selectList(SELECT_LIST, sqlMap(sql, page, args)));
  23. }finally {
  24. closeSqlSession(sqlSession);
  25. }
  26. return page;
  27. }
  28. private SqlSession sqlSession() {
  29. return SqlSessionUtils.getSqlSession(SqlHelper.FACTORY);
  30. }
  31. private Map<String, Object> sqlMap(String sql, IPage page, Object... args) {
  32. Map<String, Object> sqlMap = new HashMap<>();
  33. sqlMap.put(PAGE, page);
  34. sqlMap.put(SQL, StringUtils.sqlArgsFill(sql, args));
  35. return sqlMap;
  36. }
  37. private static void closeSqlSession(SqlSession sqlSession) {
  38. SqlSessionFactory sqlSessionFactory = SqlHelper.FACTORY;
  39. SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
  40. }
  41. }