Browse Source

重大更新,简化更多配置

周浩 9 năm trước cách đây
mục cha
commit
4a33a8d876
33 tập tin đã thay đổi với 410 bổ sung807 xóa
  1. 29 33
      hsweb-web-dao-impl-mybatis/README.md
  2. 12 0
      hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/MybatisDaoAutoConfiguration.java
  3. 103 7
      hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java
  4. 3 4
      hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/plgins/pager/PagerInterceptor.java
  5. 20 0
      hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/utils/ResultMapsUtils.java
  6. 5 20
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/basic/BasicMapper.xml
  7. 8 28
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/classified/ClassifiedMapper.xml
  8. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/config/ConfigMapper.xml
  9. 12 37
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/form/FormMapper.xml
  10. 8 29
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/history/HistoryMapper.xml
  11. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/module/ModuleMapper.xml
  12. 8 25
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/module/ModuleMetaMapper.xml
  13. 8 26
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml
  14. 8 24
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/RoleMapper.xml
  15. 9 23
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/RoleModuleMapper.xml
  16. 8 22
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/UserRoleMapper.xml
  17. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/script/DynamicScriptMapper.xml
  18. 14 40
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/template/TemplateMapper.xml
  19. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/user/UserMapper.xml
  20. 9 23
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/basic/BasicMapper.xml
  21. 8 28
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/classified/ClassifiedMapper.xml
  22. 8 24
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/config/ConfigMapper.xml
  23. 12 37
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/form/FormMapper.xml
  24. 8 29
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/history/HistoryMapper.xml
  25. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/module/ModuleMapper.xml
  26. 8 25
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/module/ModuleMetaMapper.xml
  27. 8 26
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml
  28. 8 24
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/RoleMapper.xml
  29. 8 22
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/RoleModuleMapper.xml
  30. 8 22
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/UserRoleMapper.xml
  31. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/script/DynamicScriptMapper.xml
  32. 14 40
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/template/TemplateMapper.xml
  33. 8 27
      hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/user/UserMapper.xml

+ 29 - 33
hsweb-web-dao-impl-mybatis/README.md

@@ -23,59 +23,55 @@
     
     <mapper namespace="org.hsweb.web.dao.user.UserMapper">
         <resultMap id="UserResultMap" type="User">
-            <id property="u_id" column="u_id" javaType="string" jdbcType="VARCHAR"/>
-            <!--***********-->
+            <id property="id" column="u_id" javaType="string" jdbcType="VARCHAR"/>
+            <result property="username" column="username" javaType="String" jdbcType="VARCHAR"/>
+            <result property="password" column="password" javaType="String" jdbcType="VARCHAR"/>
+            <result property="name" column="name" javaType="String" jdbcType="VARCHAR"/>
+            <result property="email" column="email" javaType="String" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" javaType="String" jdbcType="VARCHAR"/>
+            <result property="status" column="status" javaType="int" jdbcType="INTEGER"/>
+            <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
+            <result property="updateDate" column="update_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
         </resultMap>
-        <!--字段信息配置-->
-        <sql id="fieldConfig">
-            <bind name="$fieldsInfo"
-                  value="#{
-                        'u_id':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'username':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'password':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'email':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'phone':#{'jdbcType':'VARCHAR','javaType':'string'}
-                        ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                        ,'create_date':#{'jdbcType':'TIMESTAMP','javaType':'date'}
-                        ,'update_date':#{'jdbcType':'TIMESTAMP','javaType':'date'}
-                        }"/>
-            <bind name="$fields" value="$fieldsInfo.keySet()"/>
-        </sql>
-        <!--表名-->
-        <sql id="tableName">
-            <bind name="$tableName" value="'s_user'"/>
+        <!--用于动态生成sql所需的配置-->
+        <sql id="config">
+            <bind name="resultMapId" value="'UserResultMap'"/>
+            <bind name="tableName" value="'s_user'"/>
         </sql>
     
-        <insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-            <include refid="fieldConfig"/>
-            <include refid="tableName"/>
+        <insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
+            <include refid="config"/>
             <include refid="BasicMapper.buildInsertSql"/>
         </insert>
     
-        <delete id="delete" parameterType="UserRole">
-            delete from s_user where u_id=#{u_id}
+        <delete id="delete" parameterType="org.hsweb.web.bean.common.DeleteParam">
+            delete from s_user where u_id=#{term.primaryKey}
         </delete>
     
+        <update id="updatePassword" parameterType="User">
+            update s_user set password=#{password,jdbcType=VARCHAR} where u_id = #{id}
+        </update>
+    
         <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-            <include refid="fieldConfig"/>
-            <include refid="tableName"/>
+            <include refid="config"/>
             <include refid="BasicMapper.buildUpdateSql"/>
         </update>
-        
+    
+        <select id="selectByUserName" parameterType="string" resultMap="UserResultMap">
+            select * from s_user where username=#{username}
+        </select>
+    
         <select id="selectByPk" parameterType="string" resultMap="UserResultMap">
             select * from s_user where u_id=#{u_id}
         </select>
     
         <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="UserResultMap">
-            <include refid="fieldConfig"/>
-            <include refid="tableName"/>
+            <include refid="config"/>
             <include refid="BasicMapper.buildSelectSql"/>
         </select>
     
         <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-            <include refid="fieldConfig"/>
-            <include refid="tableName"/>
+            <include refid="config"/>
             <include refid="BasicMapper.buildTotalSql"/>
         </select>
     </mapper>

+ 12 - 0
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/MybatisDaoAutoConfiguration.java

@@ -1,9 +1,14 @@
 package org.hsweb.web.mybatis;
 
+import org.hsweb.web.mybatis.utils.ResultMapsUtils;
+import org.mybatis.spring.SqlSessionTemplate;
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
+import javax.annotation.PostConstruct;
+
 /**
  * Created by zhouhao on 16-5-6.
  */
@@ -12,4 +17,11 @@ import org.springframework.context.annotation.Configuration;
 @MapperScan(basePackages = {"org.hsweb.web.dao"})
 public class MybatisDaoAutoConfiguration {
 
+    @Autowired
+    private SqlSessionTemplate sqlSessionTemplate;
+
+    @PostConstruct
+    public void init() {
+        ResultMapsUtils.setSqlSession(sqlSessionTemplate);
+    }
 }

+ 103 - 7
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java

@@ -1,7 +1,10 @@
 package org.hsweb.web.mybatis.builder;
 
 import org.apache.commons.beanutils.BeanUtils;
+import org.apache.ibatis.mapping.ResultMap;
+import org.apache.ibatis.mapping.ResultMapping;
 import org.hsweb.web.bean.common.*;
+import org.hsweb.web.mybatis.utils.ResultMapsUtils;
 import org.hsweb.web.mybatis.utils.SqlAppender;
 import org.webbuilder.utils.common.DateTimeUtils;
 import org.webbuilder.utils.common.StringUtils;
@@ -25,9 +28,28 @@ public class DefaultSqlParamBuilder {
 
     protected Map<TermType, KeyWordMapper> mapperMap = new HashMap<>();
 
+    protected static final Map<Class, String> simpleName = new HashMap<>();
     private static DefaultSqlParamBuilder instance = new DefaultSqlParamBuilder();
 
     public DefaultSqlParamBuilder() {
+        simpleName.put(Integer.class, "int");
+        simpleName.put(Byte.class, "byte");
+        simpleName.put(Double.class, "double");
+        simpleName.put(Float.class, "float");
+        simpleName.put(Boolean.class, "boolean");
+        simpleName.put(Long.class, "long");
+        simpleName.put(Short.class, "short");
+        simpleName.put(Character.class, "char");
+        simpleName.put(String.class, "string");
+        simpleName.put(int.class, "int");
+        simpleName.put(double.class, "double");
+        simpleName.put(float.class, "float");
+        simpleName.put(boolean.class, "boolean");
+        simpleName.put(long.class, "long");
+        simpleName.put(short.class, "short");
+        simpleName.put(char.class, "char");
+        simpleName.put(byte.class, "byte");
+
         mapperMap.put(TermType.eq, (paramKey, tableName, field, jdbcType) ->
                         new SqlAppender().add(tableName, ".", field.getField(), " = ", "#{", paramKey, "}").toString()
         );
@@ -59,7 +81,7 @@ public class DefaultSqlParamBuilder {
             if (objects.size() == 1)
                 objects.add(objects.get(0));
             field.setValue(objects);
-            sqlAppender.add(tableName, ".", field.getField()," ").addSpc("between")
+            sqlAppender.add(tableName, ".", field.getField(), " ").addSpc("between")
                     .add(" #{", paramKey, "[0]}")
                     .add(" and ", "#{", paramKey, "[1]}");
             return sqlAppender.toString();
@@ -72,7 +94,7 @@ public class DefaultSqlParamBuilder {
             if (objects.size() == 1)
                 objects.add(objects.get(0));
             field.setValue(objects);
-            sqlAppender.add(tableName, ".", field.getField()," ").addSpc("not between")
+            sqlAppender.add(tableName, ".", field.getField(), " ").addSpc("not between")
                     .add(" #{", paramKey, "[0]}")
                     .add(" and ", "#{", paramKey, "[1]}");
             return sqlAppender.toString();
@@ -100,7 +122,7 @@ public class DefaultSqlParamBuilder {
                     if (date != null) field.setValue(date);
                 }
             }
-            sqlAppender.add(tableName, ".",field.getField(), " <= #{", paramKey, "}");
+            sqlAppender.add(tableName, ".", field.getField(), " <= #{", paramKey, "}");
             return sqlAppender.toString();
         });
 
@@ -140,14 +162,86 @@ public class DefaultSqlParamBuilder {
         return mapperMap.get(type);
     }
 
-    public String buildWhere(Map<String, Object> fieldConfig, String tableName, List<Term> terms) {
+    protected Map<String, Object> createConfig(String resultMapId) {
+        ResultMap resultMaps = ResultMapsUtils.getResultMap(resultMapId);
+        Map<String, Object> fieldConfig = new HashMap<>();
+        resultMaps.getResultMappings().forEach(resultMapping -> {
+            if (resultMapping.getNestedQueryId() == null) {
+                Map<String, Object> config = new HashMap<>();
+                config.put("jdbcType", resultMapping.getJdbcType());
+                config.put("javaType", getJavaType(resultMapping.getJavaType()));
+                config.put("property", resultMapping.getProperty());
+                fieldConfig.put(resultMapping.getColumn(), config);
+            }
+        });
+        resultMaps.getIdResultMappings().forEach(resultMapping -> {
+            Map<String, Object> config = new HashMap<>();
+            config.put("jdbcType", resultMapping.getJdbcType());
+            config.put("javaType", getJavaType(resultMapping.getJavaType()));
+            config.put("property", resultMapping.getProperty());
+            fieldConfig.put(resultMapping.getColumn(), config);
+        });
+        return fieldConfig;
+    }
+
+    public String buildWhere(String resultMapId, String tableName, List<Term> terms) {
+        Map<String, Object> fieldConfig = createConfig(resultMapId);
         SqlAppender sqlAppender = new SqlAppender();
         buildWhere(fieldConfig, "", tableName, terms, sqlAppender);
         if (sqlAppender.size() > 0) sqlAppender.removeFirst();
         return sqlAppender.toString();
     }
 
-    public String buildSelectFields(Map<String, Object> fieldConfig, String tableName, SqlParam param) {
+    public String buildInsertSql(String resultMapId, InsertParam param) {
+        ResultMap resultMaps = ResultMapsUtils.getResultMap(resultMapId);
+        Map<String, ResultMapping> mappings = new HashMap<>();
+        resultMaps.getResultMappings().forEach(resultMapping -> {
+            if (resultMapping.getNestedQueryId() == null) {
+                mappings.put(resultMapping.getColumn(), resultMapping);
+            }
+        });
+        Object data = param.getData();
+        List<Object> listData;
+        if (data instanceof Collection) {
+            listData = new ArrayList<>(((Collection) data));
+        } else {
+            listData = Arrays.asList(param.getData());
+        }
+        param.setData(listData);
+        String fields = mappings.keySet().stream().reduce((f1, f2) -> f1 + "," + f2).get();
+        //批量
+        int size = listData.size();
+        SqlAppender batchSql = new SqlAppender();
+        batchSql.add("(", fields, ")values");
+        for (int i = 0; i < size; i++) {
+            int index = i;
+            if (i > 0) {
+                batchSql.add(",");
+            }
+            String values = mappings.keySet().stream().map((f1) -> {
+                SqlAppender appender = new SqlAppender();
+                ResultMapping mapping = mappings.get(f1);
+
+                appender.add("#{data[" + index + "].",
+                        mapping.getProperty(),
+                        ",javaType=", getJavaType(mapping.getJavaType()),
+                        ",jdbcType=", mapping.getJdbcType(),
+                        "}");
+                return appender.toString();
+            }).reduce((s1, s2) -> s1 + "," + s2).get();
+            batchSql.add("(", values, ")");
+        }
+        return batchSql.toString();
+    }
+
+    protected String getJavaType(Class type) {
+        String javaType = simpleName.get(type);
+        if (javaType == null) javaType = type.getName();
+        return javaType;
+    }
+
+    public String buildSelectFields(String resultMapId, String tableName, SqlParam param) {
+        Map<String, Object> fieldConfig = createConfig(resultMapId);
         if (param == null) return "*";
         Set<String> includes = param.getIncludes(),
                 excludes = param.getExcludes();
@@ -166,7 +260,8 @@ public class DefaultSqlParamBuilder {
         return appender.toString();
     }
 
-    public String buildUpdateFields(Map<String, Object> fieldConfig, UpdateParam param) throws Exception {
+    public String buildUpdateFields(String resultMapId, UpdateParam param) throws Exception {
+        Map<String, Object> fieldConfig = createConfig(resultMapId);
         Map<String, String> propertyMapper = getPropertyMapper(fieldConfig, param);
         SqlAppender appender = new SqlAppender();
         propertyMapper.forEach((k, v) -> {
@@ -196,7 +291,8 @@ public class DefaultSqlParamBuilder {
         return appender.toString();
     }
 
-    public String buildOrder(Map<String, Object> fieldConfig, String tableName, QueryParam param) throws Exception {
+    public String buildOrder(String resultMapId, String tableName, QueryParam param) throws Exception {
+        Map<String, Object> fieldConfig = createConfig(resultMapId);
         QueryParam tmp = new QueryParam();
         tmp.setSorts(param.getSorts());
         Map<String, String> propertyMapper = getPropertyMapper(fieldConfig, tmp);

+ 3 - 4
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/plgins/pager/PagerInterceptor.java

@@ -1,6 +1,8 @@
 package org.hsweb.web.mybatis.plgins.pager;
 
 import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.executor.statement.RoutingStatementHandler;
 import org.apache.ibatis.executor.statement.StatementHandler;
 import org.apache.ibatis.mapping.MappedStatement;
 import org.apache.ibatis.plugin.*;
@@ -25,9 +27,6 @@ import java.util.Properties;
 @Intercepts({@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class,
         RowBounds.class, ResultHandler.class})})
 @Component
-@ConfigurationProperties(
-        prefix = "spring.datasource"
-)
 public class PagerInterceptor implements Interceptor {
     protected Logger logger = LoggerFactory.getLogger(this.getClass());
     protected Map<String, PagerHelper> pagerHelperBase = new HashMap<>();
@@ -64,7 +63,7 @@ public class PagerInterceptor implements Interceptor {
 
     @Override
     public void setProperties(Properties properties) {
-
+        System.out.println(properties);
     }
 
     @PostConstruct

+ 20 - 0
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/utils/ResultMapsUtils.java

@@ -0,0 +1,20 @@
+package org.hsweb.web.mybatis.utils;
+
+import org.apache.ibatis.mapping.ResultMap;
+import org.apache.ibatis.session.SqlSession;
+import org.mybatis.spring.SqlSessionTemplate;
+
+/**
+ * Created by zhouhao on 16-6-3.
+ */
+public class ResultMapsUtils {
+    private static SqlSession sqlSession;
+
+    public static ResultMap getResultMap(String id) {
+        return sqlSession.getConfiguration().getResultMap(id);
+    }
+
+    public static void setSqlSession(SqlSessionTemplate sqlSession) {
+        ResultMapsUtils.sqlSession = sqlSession;
+    }
+}

+ 5 - 20
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/basic/BasicMapper.xml

@@ -5,35 +5,23 @@
 <mapper namespace="BasicMapper">
     <!--通用查询条件-->
     <sql id="buildWhere">
-        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildWhere($fieldsInfo,$tableName,#this['_parameter'].terms)}
+        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildWhere(resultMapId,$tableName,#this['_parameter'].terms)}
     </sql>
     <!--生成查询字段-->
     <sql id="buildSelectField">
-        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildSelectFields($fieldsInfo,#this['_parameter'])}
+        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildSelectFields(resultMapId,#this['_parameter'])}
     </sql>
 
     <!--生成修改字段-->
     <sql id="buildUpdateField">
        <set>
-           ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildUpdateFields($fieldsInfo,#this['_parameter'])}
+           ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildUpdateFields(resultMapId,#this['_parameter'])}
        </set>
     </sql>
 
-    <!--生成插入字段-->
-    <sql id="buildInsertField">
-        <foreach item="item" index="index" collection="$fields" open="(" separator="," close=")">${item}</foreach>
-    </sql>
-
-    <!--生成插入值-->
-    <sql id="buildInsertValues">
-        <foreach item="item" index="index" collection="$fields" open="(" separator="," close=")">
-            #{data.${$fieldsInfo[item].property==null?item:$fieldsInfo[item].property},jdbcType=${$fieldsInfo[item]['jdbcType']},javaType=${$fieldsInfo[item]['javaType']}}
-        </foreach>
-    </sql>
-
     <!--生成排序字段-->
     <sql id="buildSortField">
-        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildOrder($fieldsInfo,$tableName,#this['_parameter'])}
+        ${@org.hsweb.web.mybatis.builder.MysqlParamBuilder@instance().buildOrder(resultMapId,$tableName,#this['_parameter'])}
     </sql>
 
     <!--生成查询sql-->
@@ -49,10 +37,7 @@
 
     <!--生成InsertSql-->
     <sql id="buildInsertSql">
-        insert into ${$tableName}
-        <include refid="BasicMapper.buildInsertField"/>
-        values
-        <include refid="BasicMapper.buildInsertValues"/>
+        insert into ${tableName} ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildInsertSql(resultMapId,#this['_parameter'])}
     </sql>
 
     <!--生成UpdateSql-->

+ 8 - 28
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/classified/ClassifiedMapper.xml

@@ -15,31 +15,14 @@
             <result property="sortIndex" column="sort_index" javaType="int" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                     'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'String'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'parent_id':#{'property':'parentId','jdbcType':'VARCHAR','javaType':'String'}
-                    ,'icon':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'config':#{'jdbcType':'CLOB','javaType':'String'}
-                    ,'sort_index':#{'property':'sortIndex','jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_classified'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ClassifiedResultMap'"/>
+        <bind name="tableName" value="'s_classified'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="u_id">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +31,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -58,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ClassifiedResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/config/ConfigMapper.xml

@@ -9,33 +9,17 @@
         <result property="remark" column="remark" javaType="String" jdbcType="VARCHAR"/>
         <result property="content" column="content" javaType="String" jdbcType="VARCHAR"/>
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
-        <result property="type" column="type" javaType="String" jdbcType="VARCHAR"/>
         <result property="classifiedId" column="classified_id" javaType="String" jdbcType="VARCHAR"/>
     </resultMap>
 
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'content':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                     ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                     ,'classified_id':#{'property':'classifiedId','jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_config'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ConfigResultMap'"/>
+        <bind name="tableName" value="'s_config'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -44,8 +28,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -54,14 +37,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ConfigResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 12 - 37
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/form/FormMapper.xml

@@ -19,35 +19,14 @@
         <result property="updateDate" column="update_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'html':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'meta':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'config':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'version':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'revision':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'release':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'using':#{'jdbcType':'INTEGER','javaType':'boolean'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'VARCHAR','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'VARCHAR','javaType':'date'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_form'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'FormResultMap'"/>
+        <bind name="tableName" value="'s_form'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -56,8 +35,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -70,16 +48,16 @@
     </select>
 
     <select id="selectLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="FormResultMap">
-        <include refid="fieldConfig"/>
+        <include refid="config"/>
         <!--定义字段配置-->
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <!--定义表名-->
         select
         <!--动态生成要查询的字段-->
         <include refid="BasicMapper.buildSelectField"/>
         from (
         select s_form.name,max(s_form.version) as version from s_form s_form
-        <include refid="tableName"/>
+        <bind name="tableName" value="'s_form'"/>
         <where>
             <!--动态查询条件-->
             <include refid="BasicMapper.buildWhere"/>
@@ -91,8 +69,7 @@
     </select>
 
     <select id="countLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         select count(0) as total from (
         select s_form.name,max(s_form.version) as version from s_form s_form
         <where>
@@ -103,14 +80,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="FormResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 29
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/history/HistoryMapper.xml

@@ -16,32 +16,14 @@
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'describe':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'primary_key_name':#{'property':'primaryKeyName','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'primary_key_value':#{'property':'primaryKeyValue','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'change_before':#{'property':'changeBefore','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'change_after':#{'property':'changeAfter','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'creator_id':#{'property':'creatorId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'VARCHAR','javaType':'date'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_history'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'HistoryResultMap'"/>
+        <bind name="tableName" value="'s_history'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -50,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -60,14 +41,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="HistoryResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/module/ModuleMapper.xml

@@ -16,30 +16,14 @@
         <result property="sortIndex" column="sort_index" javaType="long" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'uri':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'icon':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'parent_id':#{'property':'parentId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'optional':#{'property':'optional','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'sort_index':#{'property':'sortIndex','jdbcType':'INTEGER','javaType':'long'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_modules'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ModuleResultMap'"/>
+        <bind name="tableName" value="'s_modules'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -58,14 +41,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ModuleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 25
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/module/ModuleMetaMapper.xml

@@ -14,28 +14,14 @@
         <result property="status" column="status" javaType="int" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'key':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'module_id':#{'property':'moduleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'meta':#{'jdbcType':'CLOB','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_module_meta'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ModuleMetaResultMap'"/>
+        <bind name="tableName" value="'s_module_meta'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -44,8 +30,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -54,14 +39,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ModuleMetaResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 26
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/resource/ResourcesMapper.xml

@@ -15,29 +15,14 @@
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP" />
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'path':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'creator_id':#{'property':'creatorId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'md5':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_resources'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ResourcesResultMap'"/>
+        <bind name="tableName" value="'s_resources'"/>
     </sql>
 
     <insert id="insert" parameterType="Resources" useGeneratedKeys="true" keyProperty="data.id" keyColumn="u_id">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -46,8 +31,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -56,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ResourcesResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 24
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/RoleMapper.xml

@@ -12,26 +12,13 @@
                     select="org.hsweb.web.dao.role.RoleModuleMapper.selectByRoleId"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'RoleResultMap'"/>
+        <bind name="tableName" value="'s_role'"/>
     </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_role'"/>
-    </sql>
-
     <insert id="insert" parameterType="Role" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -40,8 +27,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -50,14 +36,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="RoleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 9 - 23
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/RoleModuleMapper.xml

@@ -8,30 +8,19 @@
         <id property="id" column="u_id" javaType="string" jdbcType="VARCHAR" />
         <result property="moduleId" column="module_id" javaType="String" jdbcType="VARCHAR" />
         <result property="roleId" column="role_id" javaType="String" jdbcType="VARCHAR" />
-        <result property="actions" column="actions" javaType="String" jdbcType="VARCHAR"
+        <result property="actions" column="actions" javaType="java.util.List" jdbcType="VARCHAR"
                 typeHandler="org.hsweb.web.mybatis.handler.JsonArrayHandler" />
         <collection property="module" column="module_id" ofType="Module" select="org.hsweb.web.dao.module.ModuleMapper.selectByPk"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'module_id':#{'property':'moduleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'actions':#{'jdbcType':'CLOB','javaType':'java.util.List'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_role_modules'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'RoleModuleResultMap'"/>
+        <bind name="tableName" value="'s_role_modules'"/>
     </sql>
 
     <insert id="insert" parameterType="RoleModule" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +37,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -62,14 +50,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="RoleModuleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 22
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/role/UserRoleMapper.xml

@@ -12,25 +12,14 @@
                     select="org.hsweb.web.dao.role.RoleMapper.selectByPk"></collection>
     </resultMap>
 
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'user_id':#{'property':'userId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'S_USER_ROLE'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'UserRoleResultMap'"/>
+        <bind name="tableName" value="'s_user_role'"/>
     </sql>
 
     <insert id="insert" parameterType="UserRole" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -43,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -57,14 +45,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="UserRoleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/script/DynamicScriptMapper.xml

@@ -14,30 +14,14 @@
         <result property="status" column="status" javaType="int" jdbcType="INTEGER" />
     </resultMap>
 
-    <!--字段配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'content':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'path':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_script'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'DynamicScriptResultMap'"/>
+        <bind name="tableName" value="'s_script'"/>
     </sql>
 
     <insert id="insert" parameterType="DynamicScript" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -47,8 +31,7 @@
 
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -57,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="DynamicScriptResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 14 - 40
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/template/TemplateMapper.xml

@@ -23,37 +23,14 @@
         <result property="using" column="using" javaType="boolean" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'template':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'classified_id':#{'property':'classifiedId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'script':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'css':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'css_links':#{'property':'cssLinks','jdbcType':'CLOB','javaType':'java.util.List'}
-                    ,'script_links':#{'property':'scriptLinks','jdbcType':'CLOB','javaType':'java.util.List'}
-                    ,'version':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'revision':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'release':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'using':#{'jdbcType':'INTEGER','javaType':'boolean'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_template'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'TemplateResultMap'"/>
+        <bind name="tableName" value="'s_template'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -62,8 +39,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -76,29 +52,27 @@
     </select>
 
     <select id="selectLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
-        <include refid="fieldConfig"/>
+        <include refid="config"/>
         <!--定义字段配置-->
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <!--定义表名-->
         select
         <!--动态生成要查询的字段-->
         <include refid="BasicMapper.buildSelectField"/>
         from (
         select s_template.name,max(s_template.version) as version from s_template s_template
-        <include refid="tableName"/>
         <where>
             <!--动态查询条件-->
             <include refid="BasicMapper.buildWhere"/>
         </where>
         group by name) t1
         left join s_form t2 on t1.name=t2.name and t1.version =t2.version
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <include refid="BasicMapper.buildSortField"/>
     </select>
 
     <select id="countLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         select count(0) as total from (
         select s_template.name,max(s_form.version) as version from s_template s_template
         <where>
@@ -109,14 +83,14 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
+
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
+
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/mysql/user/UserMapper.xml

@@ -17,30 +17,14 @@
         <collection property="userRoles" column="u_id" ofType="UserRole"
                     select="org.hsweb.web.dao.role.UserRoleMapper.selectByUserId"/>
     </resultMap>
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'username':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'password':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'email':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'phone':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_user'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'UserResultMap'"/>
+        <bind name="tableName" value="'s_user'"/>
     </sql>
 
     <insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -53,8 +37,7 @@
     </update>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -67,14 +50,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="UserResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 9 - 23
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/basic/BasicMapper.xml

@@ -5,42 +5,31 @@
 <mapper namespace="BasicMapper">
     <!--通用查询条件-->
     <sql id="buildWhere">
-        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildWhere($fieldsInfo,$tableName,#this['_parameter'].terms)}
+        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildWhere(resultMapId,tableName,#this['_parameter'].terms)}
     </sql>
+
     <!--生成查询字段-->
     <sql id="buildSelectField">
-        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildSelectFields($fieldsInfo,$tableName,#this['_parameter'])}
+        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildSelectFields(resultMapId,tableName,#this['_parameter'])}
     </sql>
 
     <!--生成修改字段-->
     <sql id="buildUpdateField">
         <set>
-        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildUpdateFields($fieldsInfo,#this['_parameter'])}
+            ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildUpdateFields(resultMapId,#this['_parameter'])}
         </set>
     </sql>
 
-    <!--生成插入字段-->
-    <sql id="buildInsertField">
-        <foreach item="item" index="index" collection="$fields" open="(" separator="," close=")">${item}</foreach>
-    </sql>
-
-    <!--生成插入值-->
-    <sql id="buildInsertValues">
-        <foreach item="item" index="index" collection="$fields" open="(" separator="," close=")">
-            #{data.${$fieldsInfo[item].property==null?item:$fieldsInfo[item].property},jdbcType=${$fieldsInfo[item]['jdbcType']},javaType=${$fieldsInfo[item]['javaType']}}
-        </foreach>
-    </sql>
-
     <!--生成排序字段-->
     <sql id="buildSortField">
-        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildOrder($fieldsInfo,$tableName,#this['_parameter'])}
+        ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildOrder(resultMapId,tableName,#this['_parameter'])}
     </sql>
 
     <!--生成查询sql-->
     <sql id="buildSelectSql">
         select
         <include refid="BasicMapper.buildSelectField"/>
-        from ${$tableName}
+        from ${tableName}
         <where>
             <include refid="BasicMapper.buildWhere"/>
         </where>
@@ -49,15 +38,12 @@
 
     <!--生成InsertSql-->
     <sql id="buildInsertSql">
-        insert into ${$tableName}
-        <include refid="BasicMapper.buildInsertField"/>
-        values
-        <include refid="BasicMapper.buildInsertValues"/>
+        insert into ${tableName} ${@org.hsweb.web.mybatis.builder.DefaultSqlParamBuilder@instance().buildInsertSql(resultMapId,#this['_parameter'])}
     </sql>
 
     <!--生成UpdateSql-->
     <sql id="buildUpdateSql">
-        update ${$tableName}
+        update ${tableName}
         <include refid="BasicMapper.buildUpdateField"/>
         <where>
             <include refid="BasicMapper.buildWhere"/>
@@ -69,7 +55,7 @@
 
     <!--生成查询数量sql-->
     <sql id="buildTotalSql">
-        select count(0) as "total" from ${$tableName}
+        select count(0) as "total" from ${tableName}
         <where>
             <include refid="BasicMapper.buildWhere"/>
         </where>

+ 8 - 28
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/classified/ClassifiedMapper.xml

@@ -15,31 +15,14 @@
             <result property="sortIndex" column="sort_index" javaType="int" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'String'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'parent_id':#{'property':'parentId','jdbcType':'VARCHAR','javaType':'String'}
-                    ,'icon':#{'jdbcType':'VARCHAR','javaType':'String'}
-                    ,'config':#{'jdbcType':'CLOB','javaType':'String'}
-                    ,'sort_index':#{'property':'sortIndex','jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_classified'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ClassifiedResultMap'"/>
+        <bind name="tableName" value="'s_classified'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="u_id">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +31,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -58,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ClassifiedResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 24
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/config/ConfigMapper.xml

@@ -12,27 +12,14 @@
         <result property="classifiedId" column="classified_id" javaType="String" jdbcType="VARCHAR"/>
     </resultMap>
 
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'content':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    ,'classified_id':#{'property':'classifiedId','jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_config'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ConfigResultMap'"/>
+        <bind name="tableName" value="'s_config'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -41,8 +28,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -51,14 +37,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ConfigResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 12 - 37
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/form/FormMapper.xml

@@ -19,35 +19,14 @@
         <result property="updateDate" column="update_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'html':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'meta':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'config':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'version':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'revision':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'release':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'using':#{'jdbcType':'INTEGER','javaType':'boolean'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'VARCHAR','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'VARCHAR','javaType':'date'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_form'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'FormResultMap'"/>
+        <bind name="tableName" value="'s_form'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -56,8 +35,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -70,16 +48,16 @@
     </select>
 
     <select id="selectLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="FormResultMap">
-        <include refid="fieldConfig"/>
+        <include refid="config"/>
         <!--定义字段配置-->
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <!--定义表名-->
         select
         <!--动态生成要查询的字段-->
         <include refid="BasicMapper.buildSelectField"/>
         from (
         select s_form.name,max(s_form.version) as version from s_form s_form
-        <include refid="tableName"/>
+        <bind name="tableName" value="'s_form'"/>
         <where>
             <!--动态查询条件-->
             <include refid="BasicMapper.buildWhere"/>
@@ -91,8 +69,7 @@
     </select>
 
     <select id="countLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         select count(0) as total from (
         select s_form.name,max(s_form.version) as version from s_form s_form
         <where>
@@ -103,14 +80,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="FormResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 29
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/history/HistoryMapper.xml

@@ -16,32 +16,14 @@
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'describe':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'primary_key_name':#{'property':'primaryKeyName','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'primary_key_value':#{'property':'primaryKeyValue','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'change_before':#{'property':'changeBefore','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'change_after':#{'property':'changeAfter','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'creator_id':#{'property':'creatorId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'VARCHAR','javaType':'date'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_history'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'HistoryResultMap'"/>
+        <bind name="tableName" value="'s_history'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -50,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -60,14 +41,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="HistoryResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/module/ModuleMapper.xml

@@ -16,30 +16,14 @@
         <result property="sortIndex" column="sort_index" javaType="long" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'uri':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'icon':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'parent_id':#{'property':'parentId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'optional':#{'property':'optional','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'sort_index':#{'property':'sortIndex','jdbcType':'INTEGER','javaType':'long'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_modules'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ModuleResultMap'"/>
+        <bind name="tableName" value="'s_modules'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -58,14 +41,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ModuleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 25
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/module/ModuleMetaMapper.xml

@@ -14,28 +14,14 @@
         <result property="status" column="status" javaType="int" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'key':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'module_id':#{'property':'moduleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'meta':#{'jdbcType':'CLOB','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_module_meta'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ModuleMetaResultMap'"/>
+        <bind name="tableName" value="'s_module_meta'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -44,8 +30,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -54,14 +39,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ModuleMetaResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 26
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/resource/ResourcesMapper.xml

@@ -15,29 +15,14 @@
         <result property="createDate" column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP" />
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'path':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'creator_id':#{'property':'creatorId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'md5':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_resources'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'ResourcesResultMap'"/>
+        <bind name="tableName" value="'s_resources'"/>
     </sql>
 
     <insert id="insert" parameterType="Resources" useGeneratedKeys="true" keyProperty="data.id" keyColumn="u_id">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -46,8 +31,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -56,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="ResourcesResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 24
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/RoleMapper.xml

@@ -12,26 +12,13 @@
                     select="org.hsweb.web.dao.role.RoleModuleMapper.selectByRoleId"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'RoleResultMap'"/>
+        <bind name="tableName" value="'s_role'"/>
     </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_role'"/>
-    </sql>
-
     <insert id="insert" parameterType="Role" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -40,8 +27,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -50,14 +36,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="RoleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 22
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/RoleModuleMapper.xml

@@ -13,25 +13,14 @@
         <collection property="module" column="module_id" ofType="Module" select="org.hsweb.web.dao.module.ModuleMapper.selectByPk"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'module_id':#{'property':'moduleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'actions':#{'jdbcType':'CLOB','javaType':'java.util.List'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_role_modules'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'RoleModuleResultMap'"/>
+        <bind name="tableName" value="'s_role_modules'"/>
     </sql>
 
     <insert id="insert" parameterType="RoleModule" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -48,8 +37,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -62,14 +50,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="RoleModuleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 22
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/role/UserRoleMapper.xml

@@ -12,25 +12,14 @@
                     select="org.hsweb.web.dao.role.RoleMapper.selectByPk"></collection>
     </resultMap>
 
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'user_id':#{'property':'userId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'role_id':#{'property':'roleId','jdbcType':'VARCHAR','javaType':'string'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'S_USER_ROLE'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'UserRoleResultMap'"/>
+        <bind name="tableName" value="'s_user_role'"/>
     </sql>
 
     <insert id="insert" parameterType="UserRole" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -43,8 +32,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -57,14 +45,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="UserRoleResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/script/DynamicScriptMapper.xml

@@ -14,30 +14,14 @@
         <result property="status" column="status" javaType="int" jdbcType="INTEGER" />
     </resultMap>
 
-    <!--字段配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'content':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'path':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_script'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'DynamicScriptResultMap'"/>
+        <bind name="tableName" value="'s_script'"/>
     </sql>
 
     <insert id="insert" parameterType="DynamicScript" useGeneratedKeys="true" keyProperty="data.u_id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -47,8 +31,7 @@
 
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -57,14 +40,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="DynamicScriptResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 14 - 40
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/template/TemplateMapper.xml

@@ -23,37 +23,14 @@
         <result property="using" column="using" javaType="boolean" jdbcType="INTEGER"/>
     </resultMap>
 
-    <!--字段信息绑定-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'remark':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'template':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'classified_id':#{'property':'classifiedId','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'type':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'script':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'css':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'css_links':#{'property':'cssLinks','jdbcType':'CLOB','javaType':'java.util.List'}
-                    ,'script_links':#{'property':'scriptLinks','jdbcType':'CLOB','javaType':'java.util.List'}
-                    ,'version':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'revision':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'release':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'using':#{'jdbcType':'INTEGER','javaType':'boolean'}
-                    }"/>
-
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_template'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'TemplateResultMap'"/>
+        <bind name="tableName" value="'s_template'"/>
     </sql>
 
     <insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -62,8 +39,7 @@
     </delete>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -76,29 +52,27 @@
     </select>
 
     <select id="selectLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
-        <include refid="fieldConfig"/>
+        <include refid="config"/>
         <!--定义字段配置-->
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <!--定义表名-->
         select
         <!--动态生成要查询的字段-->
         <include refid="BasicMapper.buildSelectField"/>
         from (
         select s_template.name,max(s_template.version) as version from s_template s_template
-        <include refid="tableName"/>
         <where>
             <!--动态查询条件-->
             <include refid="BasicMapper.buildWhere"/>
         </where>
         group by name) t1
         left join s_form t2 on t1.name=t2.name and t1.version =t2.version
-        <bind name="$tableName" value="'t2'"/>
+        <bind name="tableName" value="'t2'"/>
         <include refid="BasicMapper.buildSortField"/>
     </select>
 
     <select id="countLatestList" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         select count(0) as total from (
         select s_template.name,max(s_form.version) as version from s_template s_template
         <where>
@@ -109,14 +83,14 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TemplateResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
+
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
+
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>

+ 8 - 27
hsweb-web-dao-impl-mybatis/src/main/resources/org/hsweb/web/dao/impl/mybatis/mapper/oracle/user/UserMapper.xml

@@ -17,30 +17,14 @@
         <collection property="userRoles" column="u_id" ofType="UserRole"
                     select="org.hsweb.web.dao.role.UserRoleMapper.selectByUserId"/>
     </resultMap>
-    <!--字段信息配置-->
-    <sql id="fieldConfig">
-        <bind name="$fieldsInfo"
-              value="#{
-                    'u_id':#{'property':'id','jdbcType':'VARCHAR','javaType':'string'}
-                    ,'username':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'password':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'name':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'email':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'phone':#{'jdbcType':'VARCHAR','javaType':'string'}
-                    ,'status':#{'jdbcType':'INTEGER','javaType':'int'}
-                    ,'create_date':#{'property':'createDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    ,'update_date':#{'property':'updateDate','jdbcType':'TIMESTAMP','javaType':'date'}
-                    }"/>
-        <bind name="$fields" value="$fieldsInfo.keySet()"/>
-    </sql>
-    <!--表名-->
-    <sql id="tableName">
-        <bind name="$tableName" value="'s_user'"/>
+    <!--用于动态生成sql所需的配置-->
+    <sql id="config">
+        <bind name="resultMapId" value="'UserResultMap'"/>
+        <bind name="tableName" value="'s_user'"/>
     </sql>
 
     <insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="data.id" keyColumn="U_ID">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildInsertSql"/>
     </insert>
 
@@ -53,8 +37,7 @@
     </update>
 
     <update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildUpdateSql"/>
     </update>
 
@@ -67,14 +50,12 @@
     </select>
 
     <select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="UserResultMap">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildSelectSql"/>
     </select>
 
     <select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
-        <include refid="fieldConfig"/>
-        <include refid="tableName"/>
+        <include refid="config"/>
         <include refid="BasicMapper.buildTotalSql"/>
     </select>
 </mapper>