|
@@ -20,7 +20,9 @@ import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
|
|
import org.apache.ibatis.session.SqlSession;
|
|
import org.apache.ibatis.session.SqlSession;
|
|
|
|
+import org.mybatis.spring.SqlSessionUtils;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import com.baomidou.mybatisplus.enums.SqlMethod;
|
|
import com.baomidou.mybatisplus.enums.SqlMethod;
|
|
@@ -53,7 +55,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
*/
|
|
*/
|
|
@Transactional
|
|
@Transactional
|
|
public boolean insert() {
|
|
public boolean insert() {
|
|
- return SqlHelper.retBool(sqlSession().insert(sqlStatement(SqlMethod.INSERT_ONE), this));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retBool(sqlSession.insert(sqlStatement(SqlMethod.INSERT_ONE), this));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -63,7 +70,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
*/
|
|
*/
|
|
@Transactional
|
|
@Transactional
|
|
public boolean insertAllColumn() {
|
|
public boolean insertAllColumn() {
|
|
- return SqlHelper.retBool(sqlSession().insert(sqlStatement(SqlMethod.INSERT_ONE_ALL_COLUMN), this));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retBool(sqlSession.insert(sqlStatement(SqlMethod.INSERT_ONE_ALL_COLUMN), this));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -94,7 +106,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
*/
|
|
*/
|
|
@Transactional
|
|
@Transactional
|
|
public boolean deleteById(Serializable id) {
|
|
public boolean deleteById(Serializable id) {
|
|
- return SqlHelper.delBool(sqlSession().delete(sqlStatement(SqlMethod.DELETE_BY_ID), id));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.delBool(sqlSession.delete(sqlStatement(SqlMethod.DELETE_BY_ID), id));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -138,7 +155,12 @@ 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<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("ew", wrapper);
|
|
map.put("ew", wrapper);
|
|
- return SqlHelper.delBool(sqlSession().delete(sqlStatement(SqlMethod.DELETE), map));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.delBool(sqlSession.delete(sqlStatement(SqlMethod.DELETE), map));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -154,7 +176,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
// updateById
|
|
// updateById
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("et", this);
|
|
map.put("et", this);
|
|
- return SqlHelper.retBool(sqlSession().update(sqlStatement(SqlMethod.UPDATE_BY_ID), map));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retBool(sqlSession.update(sqlStatement(SqlMethod.UPDATE_BY_ID), map));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -170,7 +197,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
// updateAllColumnById
|
|
// updateAllColumnById
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("et", this);
|
|
map.put("et", this);
|
|
- return SqlHelper.retBool(sqlSession().update(sqlStatement(SqlMethod.UPDATE_ALL_COLUMN_BY_ID), map));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retBool(sqlSession.update(sqlStatement(SqlMethod.UPDATE_ALL_COLUMN_BY_ID), map));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -202,7 +234,12 @@ 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));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retBool(sqlSession.update(sqlStatement(SqlMethod.UPDATE), map));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -213,7 +250,13 @@ 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));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return sqlSession.selectList(sqlStatement(SqlMethod.SELECT_LIST));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -225,7 +268,12 @@ 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);
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return sqlSession.selectOne(sqlStatement(SqlMethod.SELECT_BY_ID), id);
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -254,7 +302,12 @@ 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<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("ew", wrapper);
|
|
map.put("ew", wrapper);
|
|
- return sqlSession().selectList(sqlStatement(SqlMethod.SELECT_LIST), map);
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return sqlSession.selectList(sqlStatement(SqlMethod.SELECT_LIST), map);
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -308,9 +361,14 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
wrapper = (Wrapper<T>) SqlHelper.fillWrapper(page, wrapper);
|
|
wrapper = (Wrapper<T>) SqlHelper.fillWrapper(page, wrapper);
|
|
map.put("ew", wrapper);
|
|
map.put("ew", wrapper);
|
|
- List<T> tl = sqlSession().selectList(sqlStatement(SqlMethod.SELECT_PAGE), map, page);
|
|
|
|
- page.setRecords(tl);
|
|
|
|
- return page;
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ List<T> tl = sqlSession.selectList(sqlStatement(SqlMethod.SELECT_PAGE), map, page);
|
|
|
|
+ page.setRecords(tl);
|
|
|
|
+ return page;
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -352,7 +410,12 @@ 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<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("ew", wrapper);
|
|
map.put("ew", wrapper);
|
|
- return SqlHelper.retCount(sqlSession().<Integer>selectOne(sqlStatement(SqlMethod.SELECT_COUNT), map));
|
|
|
|
|
|
+ SqlSession sqlSession = sqlSession();
|
|
|
|
+ try {
|
|
|
|
+ return SqlHelper.retCount(sqlSession.<Integer>selectOne(sqlStatement(SqlMethod.SELECT_COUNT), map));
|
|
|
|
+ }finally {
|
|
|
|
+ closeSqlSession(sqlSession);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -397,5 +460,12 @@ public abstract class Model<T extends Model> implements Serializable {
|
|
* 主键值
|
|
* 主键值
|
|
*/
|
|
*/
|
|
protected abstract Serializable pkVal();
|
|
protected abstract Serializable pkVal();
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 释放sqlSession
|
|
|
|
+ * @param sqlSession session
|
|
|
|
+ */
|
|
|
|
+ protected void closeSqlSession(SqlSession sqlSession){
|
|
|
|
+ SqlSessionUtils.closeSqlSession(sqlSession, GlobalConfigUtils.currentSessionFactory(getClass()));
|
|
|
|
+ }
|
|
}
|
|
}
|