From 0e572f4419488d2a22fe74df3ea2f7c694ee7e95 Mon Sep 17 00:00:00 2001 From: sunchenbin Date: Sat, 31 Mar 2018 11:31:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=85=B1=E7=9A=84save=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=88=90=E5=8A=9F=E5=90=8E=E8=BF=94=E5=9B=9E?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mybatis-enhance-actable/.classpath | 3 +- .../.settings/org.eclipse.jdt.core.prefs | 6 +-- mybatis-enhance-actable/pom.xml | 20 ++++++++-- .../command/SaveOrUpdateDataCommand.java | 37 +++++++++++++++++++ .../dao/common/BaseMysqlCRUDMapper.java | 8 +++- .../manager/common/BaseMysqlCRUDManager.java | 3 +- .../common/BaseMysqlCRUDManagerImpl.java | 15 +++++--- .../SysMysqlCreateTableManagerImpl.java | 2 +- .../SysOracleCreateTableManagerImpl.java | 16 -------- .../mapping/common/BaseMysqlCRUDMapper.xml | 10 ++--- 10 files changed, 81 insertions(+), 39 deletions(-) create mode 100644 mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/command/SaveOrUpdateDataCommand.java diff --git a/mybatis-enhance-actable/.classpath b/mybatis-enhance-actable/.classpath index 4753f69..6d4d1ba 100644 --- a/mybatis-enhance-actable/.classpath +++ b/mybatis-enhance-actable/.classpath @@ -6,7 +6,7 @@ - + @@ -14,7 +14,6 @@ - diff --git a/mybatis-enhance-actable/.settings/org.eclipse.jdt.core.prefs b/mybatis-enhance-actable/.settings/org.eclipse.jdt.core.prefs index 45a6e0e..69c31cd 100644 --- a/mybatis-enhance-actable/.settings/org.eclipse.jdt.core.prefs +++ b/mybatis-enhance-actable/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,8 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/mybatis-enhance-actable/pom.xml b/mybatis-enhance-actable/pom.xml index 906e965..eb4f67a 100644 --- a/mybatis-enhance-actable/pom.xml +++ b/mybatis-enhance-actable/pom.xml @@ -40,7 +40,7 @@ - 4.1.4.RELEASE + 4.3.7.RELEASE @@ -67,12 +67,26 @@ provided - + + + + org.mybatis + mybatis + 3.4.3 + provided + + + + org.apache.commons + commons-lang3 + 3.4 + provided + diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/command/SaveOrUpdateDataCommand.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/command/SaveOrUpdateDataCommand.java new file mode 100644 index 0000000..01394ec --- /dev/null +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/command/SaveOrUpdateDataCommand.java @@ -0,0 +1,37 @@ +package com.gitee.sunchenbin.mybatis.actable.command; + +import java.util.Map; + +public class SaveOrUpdateDataCommand { + + private Integer id; + + private Map> tableMap; + + public SaveOrUpdateDataCommand(){ + + } + + public SaveOrUpdateDataCommand(Map> tableMap){ + this.tableMap = tableMap; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Map> getTableMap() { + return tableMap; + } + + public void setTableMap(Map> tableMap) { + this.tableMap = tableMap; + } + +} + + diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/dao/common/BaseMysqlCRUDMapper.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/dao/common/BaseMysqlCRUDMapper.java index 948a5a5..883e845 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/dao/common/BaseMysqlCRUDMapper.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/dao/common/BaseMysqlCRUDMapper.java @@ -4,6 +4,9 @@ import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param; +import org.springframework.transaction.annotation.Transactional; + +import com.gitee.sunchenbin.mybatis.actable.command.SaveOrUpdateDataCommand; /** @@ -11,19 +14,20 @@ import org.apache.ibatis.annotations.Param; * @author sunchenbin * */ +@Transactional public interface BaseMysqlCRUDMapper { /** * 保存 * @param tableMap 表结构的map */ - public void save(@Param("tableMap") Map> tableMap); + public void save(SaveOrUpdateDataCommand saveOrUpdateDataCommand); /** * 更新 * @param tableMap 表结构的map */ - public void update(@Param("tableMap") Map> tableMap); + public void update(SaveOrUpdateDataCommand saveOrUpdateDataCommand); /** * 删除 diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManager.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManager.java index b8026fd..3d3a958 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManager.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManager.java @@ -8,8 +8,9 @@ public interface BaseMysqlCRUDManager{ * 保存,如果主键有值则进行更新操作 * @param model类型 * @param t 要保存的model类型数据 + * @return id 操作数据的id */ - void save(T t); + Integer save(T t); /** * 根据传入对象非空的条件删除 diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManagerImpl.java index 502c684..0d966e6 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/common/BaseMysqlCRUDManagerImpl.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional; import com.gitee.sunchenbin.mybatis.actable.annotation.Column; import com.gitee.sunchenbin.mybatis.actable.annotation.Table; +import com.gitee.sunchenbin.mybatis.actable.command.SaveOrUpdateDataCommand; import com.gitee.sunchenbin.mybatis.actable.dao.common.BaseMysqlCRUDMapper; @Transactional @@ -28,12 +29,12 @@ public class BaseMysqlCRUDManagerImpl implements BaseMysqlCRUDManager{ @Autowired private BaseMysqlCRUDMapper baseMysqlCRUDMapper; - public void save(T obj){ + public Integer save(T obj){ boolean isSave = true; Table tableName = obj.getClass().getAnnotation(Table.class); if ((tableName == null) || (tableName.name() == null || tableName.name() == "")) { log.error("必须使用model中的对象!"); - return; + return null; } Field[] declaredFields = getAllFields(obj); Map> tableMap = new HashMap>(); @@ -70,13 +71,17 @@ public class BaseMysqlCRUDManagerImpl implements BaseMysqlCRUDManager{ } if (isSave) { tableMap.put(tableName.name(), dataMap); + SaveOrUpdateDataCommand saveOrUpdateDataCommand = new SaveOrUpdateDataCommand(tableMap); // 执行保存操作 - baseMysqlCRUDMapper.save(tableMap); + baseMysqlCRUDMapper.save(saveOrUpdateDataCommand); + return saveOrUpdateDataCommand.getId(); }else{ dataMap.put(KEYFIELDMAP, keyFieldMap); tableMap.put(tableName.name(), dataMap); + SaveOrUpdateDataCommand saveOrUpdateDataCommand = new SaveOrUpdateDataCommand(tableMap); // 执行更新操作根据主键 - baseMysqlCRUDMapper.update(tableMap); + baseMysqlCRUDMapper.update(saveOrUpdateDataCommand); + return saveOrUpdateDataCommand.getId(); } } diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java index bee7582..3e0fdda 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java @@ -8,7 +8,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysOracleCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysOracleCreateTableManagerImpl.java index f4dc3d3..445a8d1 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysOracleCreateTableManagerImpl.java +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysOracleCreateTableManagerImpl.java @@ -1,14 +1,5 @@ package com.gitee.sunchenbin.mybatis.actable.manager.system; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import org.apache.commons.lang.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -16,14 +7,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.gitee.sunchenbin.mybatis.actable.annotation.Column; -import com.gitee.sunchenbin.mybatis.actable.annotation.LengthCount; -import com.gitee.sunchenbin.mybatis.actable.annotation.Table; -import com.gitee.sunchenbin.mybatis.actable.command.CreateTableParam; -import com.gitee.sunchenbin.mybatis.actable.command.SysMysqlColumns; -import com.gitee.sunchenbin.mybatis.actable.constants.OracleTypeConstant; import com.gitee.sunchenbin.mybatis.actable.dao.system.CreateMysqlTablesMapper; -import com.gitee.sunchenbin.mybatis.actable.utils.ClassTools; /** * 项目启动时自动扫描配置的目录中的model,根据配置的规则自动创建或更新表 diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/mapping/common/BaseMysqlCRUDMapper.xml b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/mapping/common/BaseMysqlCRUDMapper.xml index 9f10599..5147dd9 100644 --- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/mapping/common/BaseMysqlCRUDMapper.xml +++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/mapping/common/BaseMysqlCRUDMapper.xml @@ -2,8 +2,8 @@ - - + + insert into `${key}`( @@ -21,12 +21,11 @@ ) - - - + + update `${key}` @@ -48,7 +47,6 @@ - -- Gitee