From 1c4beec65e4601466791a45462b1b12ac79aba6b Mon Sep 17 00:00:00 2001
From: E1ED922C1E9526DD63272D7EC5C6CB77 <E1ED922C1E9526DD63272D7EC5C6CB77@i-search.com.cn>
Date: 星期一, 02 十一月 2020 19:47:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/hx/common/BaseController.java                 |    5 
 src/main/java/com/hx/common/service/impl/CommonServiceImpl.java |   94 +++++++++++
 src/main/java/com/hx/common/service/impl/CommonDaoImpl.java     |   97 ++++++++++++
 src/main/java/com/hx/mybatisTool/SqlSentence.java               |   31 +++
 src/main/java/com/hx/common/service/CommonService.java          |  100 ++++++++++++
 src/main/java/com/hx/common/dao/CommonDao.java                  |  100 ++++++++++++
 6 files changed, 426 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/hx/common/BaseController.java b/src/main/java/com/hx/common/BaseController.java
index 5c5a168..de5f6dc 100644
--- a/src/main/java/com/hx/common/BaseController.java
+++ b/src/main/java/com/hx/common/BaseController.java
@@ -1,5 +1,6 @@
 package com.hx.common;
 
+import com.hx.common.service.CommonService;
 import com.hx.exception.ParamException;
 import com.hx.exception.ServiceException;
 import org.springframework.beans.propertyeditors.CustomDateEditor;
@@ -9,6 +10,7 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.context.request.WebRequest;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 import java.text.DateFormat;
@@ -23,6 +25,9 @@
 
 public class BaseController {
 
+	@Resource
+	protected CommonService commonService;
+
 	/*璇蜂笉瑕佸0鏄庡彉閲忥紝浼氬鑷翠笉瀹夊叏锛屽洜涓鸿繖涓槸鍗曞垪*/
 
 	//鍙渶瑕佸姞涓婁笅闈㈣繖娈靛嵆鍙紝娉ㄦ剰涓嶈兘蹇樿娉ㄨВ
diff --git a/src/main/java/com/hx/common/dao/CommonDao.java b/src/main/java/com/hx/common/dao/CommonDao.java
new file mode 100644
index 0000000..138a0c5
--- /dev/null
+++ b/src/main/java/com/hx/common/dao/CommonDao.java
@@ -0,0 +1,100 @@
+package com.hx.common.dao;
+import com.hx.mybatisTool.SqlSentence;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * dao閫氱敤鎺ュ彛
+ * @author ChenJiaHe
+ * @Date 2020-10-14
+ */
+public interface CommonDao {
+
+	/**鏂板锛岃繑鍥炰富閿�
+	 * @param mapperClass mapper绫�
+	 * @param entity 瀹炰綋绫�
+	 * @return 鏉℃暟
+	 */
+	<T extends Serializable>	int insert(Class<?> mapperClass, T entity);
+
+	/**鏌ヨ鏉℃暟
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence  鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int selectCount(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ鍒楄〃锛岃繑鍥炲疄浣撶被鐨凩ist
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖list
+	 */
+	<T extends Serializable> List<T> selectList(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ鍒楄〃锛岃繑鍥濵ap鐨凩ist
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return Map鐨凩ist
+	 */
+	<T extends Serializable> List<Map<String,Object>> selectListMap(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲崟涓疄浣�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOne(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲崟涓猰ap
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> Map<String,Object> selectOneMap(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲疄浣撶被娌℃湁澶ф暟鎹殑
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOneByKey(Class<?> mapperClass, Object object);
+
+	/**鏌ヨ锛岃繑鍥炲疄浣撶被鏈夊ぇ鏁版嵁鐨�
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOneByKeyBlob(Class<?> mapperClass, Object object);
+
+	/**鏇存柊锛岃繑鍥炴洿鏂版暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int updateWhere(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏇存柊锛岃繑鍥炴洿鏂版暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param entity 瀹炰綋绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int updateAll(Class<?> mapperClass, T entity);
+
+	/**鍒犻櫎锛岃繑鍥炲垹闄ゆ暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int deleteWhere(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鍒犻櫎锛岃繑鍥炲垹闄ゆ暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int deleteById(Class<?> mapperClass, Object object);
+	
+}
\ No newline at end of file
diff --git a/src/main/java/com/hx/common/service/CommonService.java b/src/main/java/com/hx/common/service/CommonService.java
new file mode 100644
index 0000000..64164ec
--- /dev/null
+++ b/src/main/java/com/hx/common/service/CommonService.java
@@ -0,0 +1,100 @@
+package com.hx.common.service;
+import com.hx.mybatisTool.SqlSentence;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * dao閫氱敤鎺ュ彛
+ * @author ChenJiaHe
+ * @Date 2020-10-14
+ */
+public interface CommonService {
+
+	/**鏂板锛岃繑鍥炰富閿�
+	 * @param mapperClass mapper绫�
+	 * @param entity 瀹炰綋绫�
+	 * @return 鏉℃暟
+	 */
+	<T extends Serializable> int insert(Class<?> mapperClass, T entity);
+
+	/**鏌ヨ鏉℃暟
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence  鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int selectCount(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ鍒楄〃锛岃繑鍥炲疄浣撶被鐨凩ist
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖list
+	 */
+	<T extends Serializable> List<T> selectList(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ鍒楄〃锛岃繑鍥濵ap鐨凩ist
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return Map鐨凩ist
+	 */
+	<T extends Serializable> List<Map<String,Object>> selectListMap(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲崟涓疄浣�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOne(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲崟涓猰ap
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> Map<String,Object> selectOneMap(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏌ヨ锛岃繑鍥炲疄浣撶被娌℃湁澶ф暟鎹殑
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOneByKey(Class<?> mapperClass, Object object);
+
+	/**鏌ヨ锛岃繑鍥炲疄浣撶被鏈夊ぇ鏁版嵁鐨�
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖瀹炰綋绫�
+	 */
+	<T extends Serializable> T selectOneByKeyBlob(Class<?> mapperClass, Object object);
+
+	/**鏇存柊锛岃繑鍥炴洿鏂版暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int updateWhere(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鏇存柊锛岃繑鍥炴洿鏂版暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param entity 瀹炰綋绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int updateAll(Class<?> mapperClass, T entity);
+
+	/**鍒犻櫎锛岃繑鍥炲垹闄ゆ暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param sqlSentence 鏌ヨ鍙傛暟绫�
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int deleteWhere(Class<?> mapperClass, SqlSentence sqlSentence);
+
+	/**鍒犻櫎锛岃繑鍥炲垹闄ゆ暟閲�
+	 * @param mapperClass mapper绫�
+	 * @param object 鏁版嵁鏍囪瘑key
+	 * @return 杩斿洖鏉℃暟
+	 */
+	<T extends Serializable> int deleteById(Class<?> mapperClass, Object object);
+	
+}
\ No newline at end of file
diff --git a/src/main/java/com/hx/common/service/impl/CommonDaoImpl.java b/src/main/java/com/hx/common/service/impl/CommonDaoImpl.java
new file mode 100644
index 0000000..388fcd3
--- /dev/null
+++ b/src/main/java/com/hx/common/service/impl/CommonDaoImpl.java
@@ -0,0 +1,97 @@
+package com.hx.common.service.impl;
+
+import com.hx.common.dao.CommonDao;
+import com.hx.mybatisTool.SqlSentence;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**褰撳墠鏄病鏈変簨鍔″鐞嗭紝鍒囧嬁鐩存帴浣跨敤*/
+@Service
+public class CommonDaoImpl implements CommonDao {
+
+    @Resource(name = "sqlSessionFactory")
+    protected SqlSessionFactory sqlSessionFactory;
+
+    /**缁勬嫾XML鏂囦欢sql鐨刬d*/
+    private <T> String getStatement(Class<T> clazz, String prefix){
+        return clazz.getName()+"."+prefix;
+    }
+
+    /**鎻掑叆*/
+    @Override
+    public <T extends Serializable> int insert(Class<?> mapperClass,T entity) {
+        return sqlSessionFactory.openSession().insert(getStatement(mapperClass,"insert"),entity);
+    }
+
+    /**鑾峰彇鏉℃暟*/
+    @Override
+    public <T extends Serializable> int selectCount(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().selectOne(getStatement(mapperClass,"selectCount"),sqlSentence);
+    }
+
+    /**鑾峰彇鍒楄〃*/
+    @Override
+    public <T extends Serializable> List<T> selectList(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().selectList(getStatement(mapperClass,"selectList"),sqlSentence);
+    }
+
+    /**鑾峰彇鍒楄〃*/
+    @Override
+    public <T extends Serializable> List<Map<String, Object>> selectListMap(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().selectList(getStatement(mapperClass,"selectListMap"),sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁*/
+    @Override
+    public <T extends Serializable> T selectOne(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().selectOne(getStatement(mapperClass,"selectOne"),sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁*/
+    @Override
+    public <T extends Serializable> Map<String, Object> selectOneMap(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().selectOne(getStatement(mapperClass,"selectOneMap"),sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁-涓嶅惈longText鐨勬暟鎹�*/
+    @Override
+    public <T extends Serializable> T selectOneByKey(Class<?> mapperClass,Object object) {
+        return sqlSessionFactory.openSession().selectOne(getStatement(mapperClass,"selectOneByKey"),object);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁-鍚玪ongText鐨勬暟鎹�*/
+    @Override
+    public <T extends Serializable> T selectOneByKeyBlob(Class<?> mapperClass,Object object) {
+        return sqlSessionFactory.openSession().selectOne(getStatement(mapperClass,"selectOneByKeyBlob"),object);
+    }
+
+    /**鏇存柊*/
+    @Override
+    public <T extends Serializable> int updateWhere(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().update(getStatement(mapperClass,"updateWhere"),sqlSentence);
+    }
+
+    /**鍏ㄩ儴瀛楁鏇存柊*/
+    @Override
+    public <T extends Serializable> int updateAll(Class<?> mapperClass,T entity) {
+        return sqlSessionFactory.openSession().update(getStatement(mapperClass,"updateAll"),entity);
+    }
+
+    /**鍒犻櫎*/
+    @Override
+    public <T extends Serializable> int deleteWhere(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return sqlSessionFactory.openSession().delete(getStatement(mapperClass,"deleteWhere"),sqlSentence);
+    }
+
+    /**鍒犻櫎*/
+    @Override
+    public <T extends Serializable> int deleteById(Class<?> mapperClass,Object object) {
+        return sqlSessionFactory.openSession().delete(getStatement(mapperClass,"deleteById"),object);
+    }
+
+}
diff --git a/src/main/java/com/hx/common/service/impl/CommonServiceImpl.java b/src/main/java/com/hx/common/service/impl/CommonServiceImpl.java
new file mode 100644
index 0000000..7d911eb
--- /dev/null
+++ b/src/main/java/com/hx/common/service/impl/CommonServiceImpl.java
@@ -0,0 +1,94 @@
+package com.hx.common.service.impl;
+
+import com.hx.common.dao.CommonDao;
+import com.hx.common.service.CommonService;
+import com.hx.mybatisTool.SqlSentence;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**褰撳墠鏄湁浜嬪姟澶勭悊*/
+@Transactional
+@Service
+public class CommonServiceImpl implements CommonService {
+
+    @Resource
+    private CommonDao commonDao;
+
+    /**鎻掑叆*/
+    @Override
+    public <T extends Serializable> int insert(Class<?> mapperClass,T entity) {
+        return commonDao.insert(mapperClass,entity);
+    }
+
+    /**鑾峰彇鏉℃暟*/
+    @Override
+    public <T extends Serializable> int selectCount(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return commonDao.selectCount(mapperClass,sqlSentence);
+    }
+
+    /**鑾峰彇鍒楄〃*/
+    @Override
+    public <T extends Serializable> List<T> selectList(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return commonDao.selectList(mapperClass,sqlSentence);
+    }
+
+    /**鑾峰彇鍒楄〃*/
+    @Override
+    public <T extends Serializable> List<Map<String, Object>> selectListMap(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return commonDao.selectListMap(mapperClass,sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁*/
+    @Override
+    public <T extends Serializable> T selectOne(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return commonDao.selectOne(mapperClass,sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁*/
+    @Override
+    public <T extends Serializable> Map<String, Object> selectOneMap(Class<?> mapperClass, SqlSentence sqlSentence) {
+        return commonDao.selectOneMap(mapperClass,sqlSentence);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁-涓嶅惈longText鐨勬暟鎹�*/
+    @Override
+    public <T extends Serializable> T selectOneByKey(Class<?> mapperClass,Object object) {
+        return commonDao.selectOneByKey(mapperClass,object);
+    }
+
+    /**鑾峰彇鍗曟潯鏁版嵁-鍚玪ongText鐨勬暟鎹�*/
+    @Override
+    public <T extends Serializable> T selectOneByKeyBlob(Class<?> mapperClass,Object object) {
+        return commonDao.selectOneByKeyBlob(mapperClass,object);
+    }
+
+    /**鏇存柊*/
+    @Override
+    public <T extends Serializable> int updateWhere(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return commonDao.updateWhere(mapperClass,sqlSentence);
+    }
+
+    /**鍏ㄩ儴瀛楁鏇存柊*/
+    @Override
+    public <T extends Serializable> int updateAll(Class<?> mapperClass,T entity) {
+        return commonDao.updateAll(mapperClass,entity);
+    }
+
+    /**鍒犻櫎*/
+    @Override
+    public <T extends Serializable> int deleteWhere(Class<?> mapperClass,SqlSentence sqlSentence) {
+        return commonDao.deleteWhere(mapperClass,sqlSentence);
+    }
+
+    /**鍒犻櫎*/
+    @Override
+    public <T extends Serializable> int deleteById(Class<?> mapperClass,Object object) {
+        return commonDao.deleteById(mapperClass,object);
+    }
+
+}
diff --git a/src/main/java/com/hx/mybatisTool/SqlSentence.java b/src/main/java/com/hx/mybatisTool/SqlSentence.java
index a888e46..e0705c9 100644
--- a/src/main/java/com/hx/mybatisTool/SqlSentence.java
+++ b/src/main/java/com/hx/mybatisTool/SqlSentence.java
@@ -1,6 +1,7 @@
 package com.hx.mybatisTool;
 
 import com.hx.exception.TipsException;
+import com.hx.util.SimpleTool;
 import com.hx.util.StringUtils;
 
 import java.util.Map;
@@ -84,6 +85,35 @@
 		m = values;
 	}
 
+	/**
+	 * 鏌ヨ鐨勮鍙�
+	 * @param sql 濡傦細id = #{m.userId} order by age DESC
+	 * @param values 瀛樻斁鐨勫�煎锛歷alues.put("userId","123456")
+	 */
+	public void sqlWhere(String sql,Map<String,Object> values) {
+		if(!SimpleTool.checkNotNull(values)){
+			throw new TipsException("values is null");
+		}
+		if(!SimpleTool.checkNotNull(sql)) {
+			sql = "1=1";
+		}
+		sqlSentence = sql;
+		m = values;
+	}
+
+	/**
+	 * 鏇存柊璇彞鐨勮鍙�
+	 * @param sql 濡傦細name = #{m.name},age = ? WHERE id = #{m.id}
+	 * @param values 瀛樻斁鐨勫��
+	 */
+	public void sqlUpdate(String sql,Map<String,Object> values) {
+		if(!SimpleTool.checkNotNull(values)){
+			throw new TipsException("values is null");
+		}
+		m = values;
+		sqlSentence = sql;
+	}
+
 	
 	/************************************************************************/
 
@@ -131,7 +161,6 @@
     {
         return (startPage - 1) * pageNum;
     }
-
 }
 
 

--
Gitblit v1.8.0