From 922a055f970ed79f929c5a589cecd1ee0d560a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 30 Mar 2022 18:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SalarySobBiz.java | 10 +-- .../salary/util/db/SalarySqlProxyHandle.java | 69 +++++++++++++++++++ .../salary/web/SalarySobController.java | 4 +- .../salary/wrapper/SalarySobWrapper.java | 2 +- 4 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 src/com/engine/salary/util/db/SalarySqlProxyHandle.java diff --git a/src/com/engine/salary/biz/SalarySobBiz.java b/src/com/engine/salary/biz/SalarySobBiz.java index a2a94c9ff..23b19ca28 100644 --- a/src/com/engine/salary/biz/SalarySobBiz.java +++ b/src/com/engine/salary/biz/SalarySobBiz.java @@ -2,6 +2,7 @@ package com.engine.salary.biz; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.util.db.SalarySqlProxyHandle; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; @@ -10,13 +11,8 @@ import java.util.List; public class SalarySobBiz { public SalarySobPO getById(Long id) { - SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); - try { - SalarySobMapper mapper = sqlSession.getMapper(SalarySobMapper.class); - return mapper.getById(id); - } finally { - sqlSession.close(); - } + SalarySobMapper mapper = SalarySqlProxyHandle.getProxy(SalarySobMapper.class); + return mapper.getById(id); } diff --git a/src/com/engine/salary/util/db/SalarySqlProxyHandle.java b/src/com/engine/salary/util/db/SalarySqlProxyHandle.java new file mode 100644 index 000000000..d3a4da7f0 --- /dev/null +++ b/src/com/engine/salary/util/db/SalarySqlProxyHandle.java @@ -0,0 +1,69 @@ +package com.engine.salary.util.db; + +import com.api.formmode.mybatis.util.SqlProxyHandle; +import org.apache.ibatis.session.SqlSession; +import weaver.conn.mybatis.MyBatisFactory; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +public class SalarySqlProxyHandle implements InvocationHandler { + private Class clazz; + private boolean isAutoCommit = true; + private SqlSession session; + + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Exception { + if (this.session == null) { + this.session = MyBatisFactory.sqlSessionFactory.openSession(); + } + try { + Object target = session.getMapper(clazz); + Object invoke = method.invoke(target, args); + if (isAutoCommit) { + session.commit(); + } + return invoke; + } finally { + session.close(); + } + } + + public Object getProxy() { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + Class[] interfaces = new Class[1]; + interfaces[0] = this.clazz; + return Proxy.newProxyInstance(loader, interfaces, this); + } + + public Object getProxy(boolean isAutoCommit) { + this.isAutoCommit = isAutoCommit; + return this.getProxy(); + } + + public void commit() { + if (this.session != null) { + this.session.commit(); + this.session.close(); + } + } + + public void rollback() { + if (this.session != null) { + this.session.rollback(); + this.session.close(); + } + } + + public static T getProxy(Class clazz) { + SqlProxyHandle handle = new SqlProxyHandle(clazz); + return (T) handle.getProxy(); + } + + public static T getProxy(Class clazz, boolean isAutoSubmit) { + SqlProxyHandle handle = new SqlProxyHandle(clazz); + return (T) handle.getProxy(isAutoSubmit); + } +} diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 5c14430af..3d6dad578 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -92,9 +92,9 @@ public class SalarySobController { public String getSalarySobBasicForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobBasicSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); if (saveParam.getId() == null || saveParam.getId() <= 0) { - return new ResponseResult>().run(getSalarySobWrapper(user)::save, saveParam); + return new ResponseResult().run(getSalarySobWrapper(user)::save, saveParam); } else { - return new ResponseResult>().run(getSalarySobWrapper(user)::update, saveParam); + return new ResponseResult().run(getSalarySobWrapper(user)::update, saveParam); } } diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index b9d5c7e0f..16fabe86b 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -69,7 +69,7 @@ public class SalarySobWrapper extends Service { table.setBackfields(fields); table.setSqlform(from); -// table.setSqlwhere(makeSqlWhere(queryParam)); + table.setSqlwhere(makeSqlWhere(queryParam)); table.setSqlorderby("t.id DESC"); table.setSqlprimarykey("t.id"); table.setSqlisdistinct("false");