Browse Source

释放sqlSession,待优化.

nieqiurong@163.com 7 years ago
parent
commit
158baa4248

+ 27 - 9
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/Model.java

@@ -51,7 +51,9 @@ public abstract class Model<T extends Model> implements Serializable {
      */
      */
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean insert() {
     public boolean insert() {
-        return SqlHelper.retBool(sqlSession().insert(sqlStatement(SqlMethod.INSERT_ONE), this));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retBool(session.insert(sqlStatement(SqlMethod.INSERT_ONE), this));
+        }
     }
     }
 
 
     /**
     /**
@@ -82,7 +84,9 @@ public abstract class Model<T extends Model> implements Serializable {
      */
      */
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean deleteById(Serializable id) {
     public boolean deleteById(Serializable id) {
-        return SqlHelper.delBool(sqlSession().delete(sqlStatement(SqlMethod.DELETE_BY_ID), id));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.delBool(session.delete(sqlStatement(SqlMethod.DELETE_BY_ID), id));
+        }
     }
     }
 
 
     /**
     /**
@@ -112,7 +116,9 @@ public abstract class Model<T extends Model> implements Serializable {
     public boolean delete(Wrapper wrapper) {
     public boolean delete(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
         Map<String, Object> map = new HashMap<>(1);
         map.put("ew", wrapper);
         map.put("ew", wrapper);
-        return SqlHelper.delBool(sqlSession().delete(sqlStatement(SqlMethod.DELETE), map));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.delBool(session.delete(sqlStatement(SqlMethod.DELETE), map));
+        }
     }
     }
 
 
     /**
     /**
@@ -145,7 +151,9 @@ public abstract class Model<T extends Model> implements Serializable {
         map.put("et", this);
         map.put("et", this);
         map.put("ew", wrapper);
         map.put("ew", wrapper);
         // update
         // update
-        return SqlHelper.retBool(sqlSession().update(sqlStatement(SqlMethod.UPDATE), map));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retBool(session.update(sqlStatement(SqlMethod.UPDATE), map));
+        }
     }
     }
 
 
     /**
     /**
@@ -156,7 +164,9 @@ public abstract class Model<T extends Model> implements Serializable {
      * @return
      * @return
      */
      */
     public List<T> selectAll() {
     public List<T> selectAll() {
-        return sqlSession().selectList(sqlStatement(SqlMethod.SELECT_LIST));
+        try(SqlSession session = sqlSession()) {
+            return session.selectList(sqlStatement(SqlMethod.SELECT_LIST));
+        }
     }
     }
 
 
     /**
     /**
@@ -168,7 +178,9 @@ public abstract class Model<T extends Model> implements Serializable {
      * @return
      * @return
      */
      */
     public T selectById(Serializable id) {
     public T selectById(Serializable id) {
-        return sqlSession().selectOne(sqlStatement(SqlMethod.SELECT_BY_ID), id);
+        try(SqlSession session = sqlSession()) {
+            return session.selectOne(sqlStatement(SqlMethod.SELECT_BY_ID), id);
+        }
     }
     }
 
 
     /**
     /**
@@ -197,7 +209,9 @@ public abstract class Model<T extends Model> implements Serializable {
     public List<T> selectList(Wrapper wrapper) {
     public List<T> selectList(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
         Map<String, Object> map = new HashMap<>(1);
         map.put("ew", wrapper);
         map.put("ew", wrapper);
-        return sqlSession().selectList(sqlStatement(SqlMethod.SELECT_LIST), map);
+        try(SqlSession session = sqlSession()) {
+            return session.selectList(sqlStatement(SqlMethod.SELECT_LIST), map);
+        }
     }
     }
 
 
     /**
     /**
@@ -224,7 +238,9 @@ public abstract class Model<T extends Model> implements Serializable {
     public IPage<T> selectPage(IPage<T> page, Wrapper<T> wrapper) {
     public IPage<T> selectPage(IPage<T> page, Wrapper<T> wrapper) {
         Map<String, Object> map = new HashMap<>(1);
         Map<String, Object> map = new HashMap<>(1);
         map.put("ew", SqlHelper.fillWrapper(page, wrapper));
         map.put("ew", SqlHelper.fillWrapper(page, wrapper));
-        page.setRecords(sqlSession().selectList(sqlStatement(SqlMethod.SELECT_PAGE), map));
+        try(SqlSession session = sqlSession()) {
+            page.setRecords(session.selectList(sqlStatement(SqlMethod.SELECT_PAGE), map));
+        }
         return page;
         return page;
     }
     }
 
 
@@ -239,7 +255,9 @@ public abstract class Model<T extends Model> implements Serializable {
     public int selectCount(Wrapper wrapper) {
     public int selectCount(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
         Map<String, Object> map = new HashMap<>(1);
         map.put("ew", wrapper);
         map.put("ew", wrapper);
-        return SqlHelper.retCount(sqlSession().<Integer>selectOne(sqlStatement(SqlMethod.SELECT_COUNT), map));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retCount(session.<Integer>selectOne(sqlStatement(SqlMethod.SELECT_COUNT), map));
+        }
     }
     }
 
 
     /**
     /**

+ 18 - 6
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlRunner.java

@@ -85,13 +85,17 @@ public class SqlRunner implements ISqlRunner {
     @Transactional
     @Transactional
     @Override
     @Override
     public boolean insert(String sql, Object... args) {
     public boolean insert(String sql, Object... args) {
-        return SqlHelper.retBool(sqlSession().insert(INSERT, sqlMap(sql, args)));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retBool(session.insert(INSERT, sqlMap(sql, args)));
+        }
     }
     }
 
 
     @Transactional
     @Transactional
     @Override
     @Override
     public boolean delete(String sql, Object... args) {
     public boolean delete(String sql, Object... args) {
-        return SqlHelper.retBool(sqlSession().delete(DELETE, sqlMap(sql, args)));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retBool(session.delete(DELETE, sqlMap(sql, args)));
+        }
     }
     }
 
 
     /**
     /**
@@ -110,7 +114,9 @@ public class SqlRunner implements ISqlRunner {
     @Transactional
     @Transactional
     @Override
     @Override
     public boolean update(String sql, Object... args) {
     public boolean update(String sql, Object... args) {
-        return SqlHelper.retBool(sqlSession().update(UPDATE, sqlMap(sql, args)));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retBool(session.update(UPDATE, sqlMap(sql, args)));
+        }
     }
     }
 
 
     /**
     /**
@@ -123,7 +129,9 @@ public class SqlRunner implements ISqlRunner {
      */
      */
     @Override
     @Override
     public List<Map<String, Object>> selectList(String sql, Object... args) {
     public List<Map<String, Object>> selectList(String sql, Object... args) {
-        return sqlSession().selectList(SELECT_LIST, sqlMap(sql, args));
+        try(SqlSession session = sqlSession()) {
+            return session.selectList(SELECT_LIST, sqlMap(sql, args));
+        }
     }
     }
 
 
     /**
     /**
@@ -136,7 +144,9 @@ public class SqlRunner implements ISqlRunner {
      */
      */
     @Override
     @Override
     public List<Object> selectObjs(String sql, Object... args) {
     public List<Object> selectObjs(String sql, Object... args) {
-        return sqlSession().selectList(SELECT_OBJS, sqlMap(sql, args));
+        try(SqlSession session = sqlSession()) {
+            return session.selectList(SELECT_OBJS, sqlMap(sql, args));
+        }
     }
     }
 
 
     /**
     /**
@@ -154,7 +164,9 @@ public class SqlRunner implements ISqlRunner {
 
 
     @Override
     @Override
     public int selectCount(String sql, Object... args) {
     public int selectCount(String sql, Object... args) {
-        return SqlHelper.retCount(sqlSession().<Integer>selectOne(COUNT, sqlMap(sql, args)));
+        try(SqlSession session = sqlSession()) {
+            return SqlHelper.retCount(session.<Integer>selectOne(COUNT, sqlMap(sql, args)));
+        }
     }
     }
 
 
     @Override
     @Override