mapper.xml.ftl 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="${package.Mapper}.${entity}DAO">
  4. <#if enableCache>
  5. <!-- 开启二级缓存 -->
  6. <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
  7. </#if>
  8. <#if baseResultMap>
  9. <!-- 通用查询映射结果 -->
  10. <resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
  11. <#list table.fields as field>
  12. <#if field.keyFlag><#--生成主键排在第一位-->
  13. <#if field.type?starts_with("int")>
  14. <id column="${field.name}" jdbcType="INTEGER" property="${field.propertyName}"/>
  15. <#elseif field.type?starts_with("datetime")>
  16. <id column="${field.name}" jdbcType="TIMESTAMP" property="${field.propertyName}"/>
  17. <#elseif field.type?starts_with("text") || field.type?starts_with("longtext")>
  18. <id column="${field.name}" jdbcType="LONGVARCHAR" property="${field.propertyName}"/>
  19. <#else>
  20. <#if field.type?contains("(")>
  21. <#assign fType = field.type?substring(0, field.type?index_of("("))?upper_case/>
  22. <id column="${field.name}" jdbcType="${fType}" property="${field.propertyName}"/>
  23. <#else>
  24. <id column="${field.name}" jdbcType="${field.type?upper_case}" property="${field.propertyName}"/>
  25. </#if>
  26. </#if>
  27. </#if>
  28. </#list>
  29. <#list table.commonFields as field><#--生成公共字段 -->
  30. <#if field.keyFlag>
  31. <#if field.type?starts_with("int")>
  32. <id column="${field.name}" jdbcType="INTEGER" property="${field.propertyName}"/>
  33. <#elseif field.type?starts_with("datetime")>
  34. <id column="${field.name}" jdbcType="TIMESTAMP" property="${field.propertyName}"/>
  35. <#elseif field.type?starts_with("text") || field.type?starts_with("longtext")>
  36. <id column="${field.name}" jdbcType="LONGVARCHAR" property="${field.propertyName}"/>
  37. <#else>
  38. <#if field.type?contains("(")>
  39. <#assign fType = field.type?substring(0, field.type?index_of("("))?upper_case/>
  40. <id column="${field.name}" jdbcType="${fType}" property="${field.propertyName}"/>
  41. <#else>
  42. <id column="${field.name}" jdbcType="${field.type?upper_case}" property="${field.propertyName}"/>
  43. </#if>
  44. </#if>
  45. <#else>
  46. <#if field.type?starts_with("int")>
  47. <result column="${field.name}" jdbcType="INTEGER" property="${field.propertyName}"/>
  48. <#elseif field.type?starts_with("datetime")>
  49. <result column="${field.name}" jdbcType="TIMESTAMP" property="${field.propertyName}"/>
  50. <#elseif field.type?starts_with("text") || field.type?starts_with("longtext") || field.type?starts_with("mediumtext")>
  51. <result column="${field.name}" jdbcType="LONGVARCHAR" property="${field.propertyName}"/>
  52. <#else>
  53. <#if field.type?contains("(")>
  54. <#assign fType = field.type?substring(0, field.type?index_of("("))?upper_case/>
  55. <result column="${field.name}" jdbcType="${fType}" property="${field.propertyName}"/>
  56. <#else>
  57. <result column="${field.name}" jdbcType="${field.type?upper_case}" property="${field.propertyName}"/>
  58. </#if>
  59. </#if>
  60. </#if>
  61. </#list>
  62. <#list table.fields as field>
  63. <#if !field.keyFlag><#--生成普通字段 -->
  64. <#assign myPropertyName="${field.propertyName}"/>
  65. <#-- 自动注入注解 -->
  66. <#if field.customMap.annotation?? && field.propertyName?ends_with("Id")>
  67. <#assign myPropertyName="${field.propertyName!?substring(0,field.propertyName?index_of('Id'))}"/>
  68. </#if>
  69. <#if field.type?starts_with("int")>
  70. <result column="${field.name}" jdbcType="INTEGER" property="${myPropertyName}"/>
  71. <#elseif field.type?starts_with("datetime")>
  72. <result column="${field.name}" jdbcType="TIMESTAMP" property="${myPropertyName}"/>
  73. <#elseif field.type?starts_with("text") || field.type?starts_with("longtext") || field.type?starts_with("mediumtext")>
  74. <result column="${field.name}" jdbcType="LONGVARCHAR" property="${myPropertyName}"/>
  75. <#else>
  76. <#if field.type?contains("(")>
  77. <#assign fType = field.type?substring(0, field.type?index_of("("))?upper_case/>
  78. <result column="${field.name}" jdbcType="${fType}" property="${myPropertyName}"/>
  79. <#else>
  80. <result column="${field.name}" jdbcType="${field.type?upper_case}" property="${myPropertyName}"/>
  81. </#if>
  82. </#if>
  83. </#if>
  84. </#list>
  85. </resultMap>
  86. </#if>
  87. <#if baseColumnList>
  88. <!-- 通用查询结果列 -->
  89. <sql id="Base_Column_List">
  90. ${table.fieldNames}
  91. </sql>
  92. </#if>
  93. </mapper>