From 24bed5e6b6e31090cb61600a0bdea898eac65da1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 26 十二月 2020 17:20:23 +0800 Subject: [PATCH] cmq调整 --- utils/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java | 610 +++++++++++++++++++++++++++--------------------------- 1 files changed, 305 insertions(+), 305 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/mybatis/MyBatisMapperUtil.java b/utils/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java similarity index 99% rename from utils/src/main/java/org/yeshi/utils/mybatis/MyBatisMapperUtil.java rename to utils/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java index 609ada1..3f8a520 100644 --- a/utils/src/main/java/org/yeshi/utils/mybatis/MyBatisMapperUtil.java +++ b/utils/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java @@ -1,305 +1,305 @@ -package org.yeshi.utils.mybatis; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.PrintWriter; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import org.dom4j.DocumentHelper; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.XMLWriter; - -public class MyBatisMapperUtil { - private static String basePath = "D:/mybatis"; - - static { - // 鍒涘缓宸ヤ綔鐩綍 - if (!new File(basePath).exists()) - new File(basePath).mkdirs(); - } - - // 鑾峰彇dao鎵�鍦ㄧ殑鍖呭悕 - private static String getDaoPackageName(Class<?> bean) { - String name = bean.getName(); - String[] ns = name.split("\\."); - if (ns.length > 2) { - String pks = ""; - for (int i = 0; i < ns.length - 2; i++) { - pks += ns[i] + "."; - } - return pks + "dao"; - } - return ""; - } - - private static String getMapperPackageName(Class<?> bean) { - String name = bean.getName(); - String[] ns = name.split("\\."); - if (ns.length > 2) { - String pks = ""; - for (int i = 0; i < ns.length - 2; i++) { - pks += ns[i] + "."; - } - return pks + "mapper"; - } - return ""; - } - - public static void createMapper(Class<?> clz) { - // 鐢熸垚mapper java鏂囦欢 - String pks = getDaoPackageName(clz); - StringBuffer buffer = new StringBuffer("package " + pks + ";"); - buffer.append("\n\n"); - buffer.append("import " + clz.getName() + ";"); - buffer.append("\n\n"); - buffer.append(String.format("public interface %sMapper extends BaseMapper<%s> {", clz.getSimpleName(),clz.getSimpleName())); - buffer.append("\n\n\t"); - buffer.append("}"); - String daoName = String.format("%sMapper.java", clz.getSimpleName()); - String daoPath = basePath + "/dao/" + daoName; - try { - if (!new File(basePath + "/dao/").exists()) - new File(basePath + "/dao/").mkdirs(); - if (!new File(daoPath).exists()) - new File(daoPath).createNewFile(); - FileOutputStream fos = new FileOutputStream(new File(daoPath)); - PrintWriter pw = new PrintWriter(fos); - pw.write(buffer.toString().toCharArray()); - pw.flush(); - pw.close(); - fos.close(); - } catch (Exception e) { - e.printStackTrace(); - } - - /** - * 鐢熸垚Mapper xml鏂囦欢 - */ - // 鑾峰彇闇�瑕佹槧灏勭殑鍒� - List<AttributeColumnMap> keysList = new ArrayList<>(); - Field[] fields = clz.getDeclaredFields(); - for (Field fd : fields) { - Annotation[] as = fd.getAnnotations(); - for (Annotation a : as) { - if (a instanceof Column) { - Column c = (Column) a; - keysList.add(new AttributeColumnMap(fd.getName(), c.name(), fd.getType().getName())); - } - } - } - String tableName = ""; - Annotation[] as = clz.getAnnotations(); - for (Annotation a : as) { - if (a instanceof Table) { - Table t = (Table) a; - tableName = t.value(); - } - } - - try { - String mapperName = String.format("%sMapper.xml", clz.getSimpleName()); - String mapperPath = basePath + "/mapper/" + mapperName; - - org.dom4j.Document document = DocumentHelper.createDocument(); - document.addDocType("mapper", "-//mybatis.org//DTD Mapper 3.0//EN", - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"); - org.dom4j.Element root = document.addElement("mapper"); - root.addAttribute("namespace", pks + "." + mapperName.replace(".xml", "")); - - org.dom4j.Element resultMap = root.addElement("resultMap"); - resultMap.addAttribute("id", "BaseResultMap"); - resultMap.addAttribute("type", clz.getName()); - - AttributeColumnMap idKeys = getAttributeColumnMapByAttribute("id", keysList); - if (idKeys != null) { - org.dom4j.Element id = resultMap.addElement("id"); - id.addAttribute("column", idKeys.column); - id.addAttribute("property", idKeys.attribute); - id.addAttribute("jdbcType", ColumnParseUtil.getJDBCType(idKeys.type)); - } - - for (AttributeColumnMap key : keysList) { - if (key.attribute.equalsIgnoreCase(idKeys.attribute) || ColumnParseUtil.getJDBCType(key.type) == null) - continue; - org.dom4j.Element result = resultMap.addElement("result"); - result.addAttribute("column", key.column); - result.addAttribute("property", key.attribute); - result.addAttribute("jdbcType", ColumnParseUtil.getJDBCType(key.type)); - } - - // 灞炴�у�间腑鍖呭惈瀹炰綋 - for (AttributeColumnMap key : keysList) { - if (ColumnParseUtil.getJDBCType(key.type) == null) { - Class<?> propertyClass = Class.forName(key.type); - String propertyMapper = getDaoPackageName(propertyClass) + "." + propertyClass.getSimpleName() - + "Mapper"; - org.dom4j.Element association = resultMap.addElement("association"); - association.addAttribute("property", key.attribute); - association.addAttribute("column", key.column); - association.addAttribute("resultMap", propertyMapper + ".BaseResultMap"); - key.attribute = key.attribute + ".id"; - key.type = "java.lang.Long"; - } - } - - org.dom4j.Element sql = root.addElement("sql"); - sql.addAttribute("id", "Base_Column_List"); - sql.setText(getColumns(keysList)); - - org.dom4j.Element select = root.addElement("select"); - select.addAttribute("id", "selectByPrimaryKey"); - select.addAttribute("resultMap", "BaseResultMap"); - select.addAttribute("parameterType", "java.lang.Long"); - select.addText("select"); - org.dom4j.Element include = select.addElement("include"); - include.addAttribute("refid", "Base_Column_List"); - select.addText(String.format("from %s where %s = #{%s,jdbcType=BIGINT}", tableName, idKeys.column, - idKeys.attribute)); - - org.dom4j.Element delete = root.addElement("delete"); - delete.addAttribute("id", "deleteByPrimaryKey"); - delete.addAttribute("parameterType", "java.lang.Long"); - delete.setText(String.format("delete from %s where %s = #{%s,jdbcType=BIGINT}", tableName, idKeys.column, - idKeys.attribute)); - - org.dom4j.Element insert = root.addElement("insert"); - insert.addAttribute("id", "insert"); - insert.addAttribute("parameterType", clz.getName()); - insert.addAttribute("useGeneratedKeys", "true"); - insert.addAttribute("keyProperty", "id"); - StringBuffer text = new StringBuffer(); - text.append(String.format("insert into %s (", tableName)); - text.append(getColumns(keysList)); - text.append(")"); - text.append(" values ("); - for (AttributeColumnMap acm : keysList) - text.append(getKeyPair(acm)).append(","); - text.deleteCharAt(text.length() - 1); - text.append(")"); - insert.setText(text.toString()); - - org.dom4j.Element insertSelective = root.addElement("insert"); - insertSelective.addAttribute("id", "insertSelective"); - insertSelective.addAttribute("parameterType", clz.getName()); - insertSelective.addAttribute("useGeneratedKeys", "true"); - insertSelective.addAttribute("keyProperty", "id"); - insertSelective.addText("insert into " + tableName); - - org.dom4j.Element trim = insertSelective.addElement("trim"); - trim.addAttribute("prefix", "("); - trim.addAttribute("suffix", ")"); - trim.addAttribute("suffixOverrides", ","); - for (AttributeColumnMap acm : keysList) { - org.dom4j.Element iff = trim.addElement("if"); - iff.addAttribute("test", - (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); - iff.setText(acm.column + ","); - } - - insertSelective.addText("values"); - - trim = insertSelective.addElement("trim"); - trim.addAttribute("prefix", "("); - trim.addAttribute("suffix", ")"); - trim.addAttribute("suffixOverrides", ","); - for (AttributeColumnMap acm : keysList) { - org.dom4j.Element iff = trim.addElement("if"); - iff.addAttribute("test", - (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); - iff.setText(getKeyPair(acm) + ","); - } - - // update - - org.dom4j.Element update = root.addElement("update"); - update.addAttribute("id", "updateByPrimaryKey"); - update.addAttribute("parameterType", clz.getName()); - text = new StringBuffer(String.format("update %s set ", tableName)); - for (AttributeColumnMap acm : keysList) { - if (acm.attribute.equalsIgnoreCase(idKeys.attribute)) - continue; - text.append(String.format("%s = #{%s,jdbcType=%s}", acm.column, acm.attribute, - ColumnParseUtil.getJDBCType(acm.type))).append(","); - } - text.deleteCharAt(text.length() - 1); - - text.append(String.format(" where %s = #{%s,jdbcType=%s}", idKeys.column, idKeys.attribute, - ColumnParseUtil.getJDBCType(idKeys.type))); - - update.setText(text.toString()); - - // updateSelective - org.dom4j.Element updateSelective = root.addElement("update"); - updateSelective.addAttribute("id", "updateByPrimaryKeySelective"); - updateSelective.addAttribute("parameterType", clz.getName()); - updateSelective.addText("update " + tableName); - org.dom4j.Element set = updateSelective.addElement("set"); - - for (AttributeColumnMap acm : keysList) { - if (acm.attribute.equalsIgnoreCase(idKeys.attribute)) - continue; - org.dom4j.Element iff = set.addElement("if"); - iff.addAttribute("test", - (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); - iff.setText(acm.column + "=" + getKeyPair(acm) + ","); - } - - updateSelective.addText(String.format(" where %s = #{%s,jdbcType=%s}", idKeys.column, idKeys.attribute, - ColumnParseUtil.getJDBCType(idKeys.type))); - - // 鍒涘缓mapper鏂囦欢 - - if (!new File(basePath + "/mapper/").exists()) - new File(basePath + "/mapper/").mkdirs(); - if (!new File(mapperPath).exists()) - new File(mapperPath).createNewFile(); - - XMLWriter writer = new XMLWriter(new FileOutputStream(new File(mapperPath)), - OutputFormat.createPrettyPrint()); - writer.setEscapeText(false);// 瀛楃鏄惁杞箟,榛樿true - writer.write(document); - writer.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private static AttributeColumnMap getAttributeColumnMapByAttribute(String attributeName, - List<AttributeColumnMap> list) { - for (AttributeColumnMap acm : list) - if (acm.attribute.equalsIgnoreCase(attributeName)) - return acm; - return null; - } - - private static String getColumns(List<AttributeColumnMap> list) { - String columns = ""; - for (AttributeColumnMap map : list) - columns += map.column + ","; - return columns.length() > 0 ? columns.substring(0, columns.length() - 1) : columns; - } - - private static String getKeyPair(AttributeColumnMap map) { - return String.format("#{%s,jdbcType=%s}", map.attribute, ColumnParseUtil.getJDBCType(map.type)); - } - -} - -class AttributeColumnMap { - String attribute; - String column; - String type; - - public AttributeColumnMap(String attribute, String column, String type) { - this.attribute = attribute; - this.column = column; - this.type = type; - } - - public AttributeColumnMap() { - - } -} +package org.yeshi.utils.generater.mybatis; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.PrintWriter; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import org.dom4j.DocumentHelper; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.XMLWriter; + +public class MyBatisMapperUtil { + private static String basePath = "D:/mybatis"; + + static { + // 鍒涘缓宸ヤ綔鐩綍 + if (!new File(basePath).exists()) + new File(basePath).mkdirs(); + } + + // 鑾峰彇dao鎵�鍦ㄧ殑鍖呭悕 + private static String getDaoPackageName(Class<?> bean) { + String name = bean.getName(); + String[] ns = name.split("\\."); + if (ns.length > 2) { + String pks = ""; + for (int i = 0; i < ns.length - 2; i++) { + pks += ns[i] + "."; + } + return pks + "dao"; + } + return ""; + } + + private static String getMapperPackageName(Class<?> bean) { + String name = bean.getName(); + String[] ns = name.split("\\."); + if (ns.length > 2) { + String pks = ""; + for (int i = 0; i < ns.length - 2; i++) { + pks += ns[i] + "."; + } + return pks + "mapper"; + } + return ""; + } + + public static void createMapper(Class<?> clz) { + // 鐢熸垚mapper java鏂囦欢 + String pks = getDaoPackageName(clz); + StringBuffer buffer = new StringBuffer("package " + pks + ";"); + buffer.append("\n\n"); + buffer.append("import " + clz.getName() + ";"); + buffer.append("\n\n"); + buffer.append(String.format("public interface %sMapper extends BaseMapper<%s> {", clz.getSimpleName(),clz.getSimpleName())); + buffer.append("\n\n\t"); + buffer.append("}"); + String daoName = String.format("%sMapper.java", clz.getSimpleName()); + String daoPath = basePath + "/dao/" + daoName; + try { + if (!new File(basePath + "/dao/").exists()) + new File(basePath + "/dao/").mkdirs(); + if (!new File(daoPath).exists()) + new File(daoPath).createNewFile(); + FileOutputStream fos = new FileOutputStream(new File(daoPath)); + PrintWriter pw = new PrintWriter(fos); + pw.write(buffer.toString().toCharArray()); + pw.flush(); + pw.close(); + fos.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + /** + * 鐢熸垚Mapper xml鏂囦欢 + */ + // 鑾峰彇闇�瑕佹槧灏勭殑鍒� + List<AttributeColumnMap> keysList = new ArrayList<>(); + Field[] fields = clz.getDeclaredFields(); + for (Field fd : fields) { + Annotation[] as = fd.getAnnotations(); + for (Annotation a : as) { + if (a instanceof Column) { + Column c = (Column) a; + keysList.add(new AttributeColumnMap(fd.getName(), c.name(), fd.getType().getName())); + } + } + } + String tableName = ""; + Annotation[] as = clz.getAnnotations(); + for (Annotation a : as) { + if (a instanceof Table) { + Table t = (Table) a; + tableName = t.value(); + } + } + + try { + String mapperName = String.format("%sMapper.xml", clz.getSimpleName()); + String mapperPath = basePath + "/mapper/" + mapperName; + + org.dom4j.Document document = DocumentHelper.createDocument(); + document.addDocType("mapper", "-//mybatis.org//DTD Mapper 3.0//EN", + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"); + org.dom4j.Element root = document.addElement("mapper"); + root.addAttribute("namespace", pks + "." + mapperName.replace(".xml", "")); + + org.dom4j.Element resultMap = root.addElement("resultMap"); + resultMap.addAttribute("id", "BaseResultMap"); + resultMap.addAttribute("type", clz.getName()); + + AttributeColumnMap idKeys = getAttributeColumnMapByAttribute("id", keysList); + if (idKeys != null) { + org.dom4j.Element id = resultMap.addElement("id"); + id.addAttribute("column", idKeys.column); + id.addAttribute("property", idKeys.attribute); + id.addAttribute("jdbcType", ColumnParseUtil.getJDBCType(idKeys.type)); + } + + for (AttributeColumnMap key : keysList) { + if (key.attribute.equalsIgnoreCase(idKeys.attribute) || ColumnParseUtil.getJDBCType(key.type) == null) + continue; + org.dom4j.Element result = resultMap.addElement("result"); + result.addAttribute("column", key.column); + result.addAttribute("property", key.attribute); + result.addAttribute("jdbcType", ColumnParseUtil.getJDBCType(key.type)); + } + + // 灞炴�у�间腑鍖呭惈瀹炰綋 + for (AttributeColumnMap key : keysList) { + if (ColumnParseUtil.getJDBCType(key.type) == null) { + Class<?> propertyClass = Class.forName(key.type); + String propertyMapper = getDaoPackageName(propertyClass) + "." + propertyClass.getSimpleName() + + "Mapper"; + org.dom4j.Element association = resultMap.addElement("association"); + association.addAttribute("property", key.attribute); + association.addAttribute("column", key.column); + association.addAttribute("resultMap", propertyMapper + ".BaseResultMap"); + key.attribute = key.attribute + ".id"; + key.type = "java.lang.Long"; + } + } + + org.dom4j.Element sql = root.addElement("sql"); + sql.addAttribute("id", "Base_Column_List"); + sql.setText(getColumns(keysList)); + + org.dom4j.Element select = root.addElement("select"); + select.addAttribute("id", "selectByPrimaryKey"); + select.addAttribute("resultMap", "BaseResultMap"); + select.addAttribute("parameterType", "java.lang.Long"); + select.addText("select"); + org.dom4j.Element include = select.addElement("include"); + include.addAttribute("refid", "Base_Column_List"); + select.addText(String.format("from %s where %s = #{%s,jdbcType=BIGINT}", tableName, idKeys.column, + idKeys.attribute)); + + org.dom4j.Element delete = root.addElement("delete"); + delete.addAttribute("id", "deleteByPrimaryKey"); + delete.addAttribute("parameterType", "java.lang.Long"); + delete.setText(String.format("delete from %s where %s = #{%s,jdbcType=BIGINT}", tableName, idKeys.column, + idKeys.attribute)); + + org.dom4j.Element insert = root.addElement("insert"); + insert.addAttribute("id", "insert"); + insert.addAttribute("parameterType", clz.getName()); + insert.addAttribute("useGeneratedKeys", "true"); + insert.addAttribute("keyProperty", "id"); + StringBuffer text = new StringBuffer(); + text.append(String.format("insert into %s (", tableName)); + text.append(getColumns(keysList)); + text.append(")"); + text.append(" values ("); + for (AttributeColumnMap acm : keysList) + text.append(getKeyPair(acm)).append(","); + text.deleteCharAt(text.length() - 1); + text.append(")"); + insert.setText(text.toString()); + + org.dom4j.Element insertSelective = root.addElement("insert"); + insertSelective.addAttribute("id", "insertSelective"); + insertSelective.addAttribute("parameterType", clz.getName()); + insertSelective.addAttribute("useGeneratedKeys", "true"); + insertSelective.addAttribute("keyProperty", "id"); + insertSelective.addText("insert into " + tableName); + + org.dom4j.Element trim = insertSelective.addElement("trim"); + trim.addAttribute("prefix", "("); + trim.addAttribute("suffix", ")"); + trim.addAttribute("suffixOverrides", ","); + for (AttributeColumnMap acm : keysList) { + org.dom4j.Element iff = trim.addElement("if"); + iff.addAttribute("test", + (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); + iff.setText(acm.column + ","); + } + + insertSelective.addText("values"); + + trim = insertSelective.addElement("trim"); + trim.addAttribute("prefix", "("); + trim.addAttribute("suffix", ")"); + trim.addAttribute("suffixOverrides", ","); + for (AttributeColumnMap acm : keysList) { + org.dom4j.Element iff = trim.addElement("if"); + iff.addAttribute("test", + (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); + iff.setText(getKeyPair(acm) + ","); + } + + // update + + org.dom4j.Element update = root.addElement("update"); + update.addAttribute("id", "updateByPrimaryKey"); + update.addAttribute("parameterType", clz.getName()); + text = new StringBuffer(String.format("update %s set ", tableName)); + for (AttributeColumnMap acm : keysList) { + if (acm.attribute.equalsIgnoreCase(idKeys.attribute)) + continue; + text.append(String.format("%s = #{%s,jdbcType=%s}", acm.column, acm.attribute, + ColumnParseUtil.getJDBCType(acm.type))).append(","); + } + text.deleteCharAt(text.length() - 1); + + text.append(String.format(" where %s = #{%s,jdbcType=%s}", idKeys.column, idKeys.attribute, + ColumnParseUtil.getJDBCType(idKeys.type))); + + update.setText(text.toString()); + + // updateSelective + org.dom4j.Element updateSelective = root.addElement("update"); + updateSelective.addAttribute("id", "updateByPrimaryKeySelective"); + updateSelective.addAttribute("parameterType", clz.getName()); + updateSelective.addText("update " + tableName); + org.dom4j.Element set = updateSelective.addElement("set"); + + for (AttributeColumnMap acm : keysList) { + if (acm.attribute.equalsIgnoreCase(idKeys.attribute)) + continue; + org.dom4j.Element iff = set.addElement("if"); + iff.addAttribute("test", + (acm.attribute.indexOf(".") > -1 ? acm.attribute.split("\\.")[0] : acm.attribute) + " != null"); + iff.setText(acm.column + "=" + getKeyPair(acm) + ","); + } + + updateSelective.addText(String.format(" where %s = #{%s,jdbcType=%s}", idKeys.column, idKeys.attribute, + ColumnParseUtil.getJDBCType(idKeys.type))); + + // 鍒涘缓mapper鏂囦欢 + + if (!new File(basePath + "/mapper/").exists()) + new File(basePath + "/mapper/").mkdirs(); + if (!new File(mapperPath).exists()) + new File(mapperPath).createNewFile(); + + XMLWriter writer = new XMLWriter(new FileOutputStream(new File(mapperPath)), + OutputFormat.createPrettyPrint()); + writer.setEscapeText(false);// 瀛楃鏄惁杞箟,榛樿true + writer.write(document); + writer.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static AttributeColumnMap getAttributeColumnMapByAttribute(String attributeName, + List<AttributeColumnMap> list) { + for (AttributeColumnMap acm : list) + if (acm.attribute.equalsIgnoreCase(attributeName)) + return acm; + return null; + } + + private static String getColumns(List<AttributeColumnMap> list) { + String columns = ""; + for (AttributeColumnMap map : list) + columns += map.column + ","; + return columns.length() > 0 ? columns.substring(0, columns.length() - 1) : columns; + } + + private static String getKeyPair(AttributeColumnMap map) { + return String.format("#{%s,jdbcType=%s}", map.attribute, ColumnParseUtil.getJDBCType(map.type)); + } + +} + +class AttributeColumnMap { + String attribute; + String column; + String type; + + public AttributeColumnMap(String attribute, String column, String type) { + this.attribute = attribute; + this.column = column; + this.type = type; + } + + public AttributeColumnMap() { + + } +} -- Gitblit v1.8.0