1.generatorConfig.xml (mybatis逆向工程核心配置类)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--引入数据库配置文件-->
  7. <properties resource="db.properties"/>
  8. <context id="testTables" targetRuntime="MyBatis3">
  9. <!--自定义生成注解的方法,去掉就没有注释,@mapper @data等-->
  10. <plugin type="org.javaboy.demo.config.MyBatisPlugin" >
  11. <property name="hasLombok" value="true就是生成"/>
  12. </plugin>
  13. <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
  14. <!-- <commentGenerator>-->
  15. <!-- &lt;!&ndash; 是否去除自动生成的注释 true:是 : false:否 &ndash;&gt;-->
  16. <!-- <property name="suppressAllComments" value="true"/>-->
  17. <!-- <property name="suppressDate" value="false"/>-->
  18. <!--带序列化-->
  19. <!-- <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />-->
  20. <!-- &lt;!&ndash;自动带toString方法&ndash;&gt;-->
  21. <!-- <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />-->
  22. <!-- </commentGenerator>-->
  23. <!--type 是自定义的类,通过扩展CommentGenerator实现自定义生成注释-->
  24. <commentGenerator type="org.javaboy.demo.config.MyCommentGenerator">
  25. <!-- 不要开启,否则将不会使用自定义注释 -->
  26. <property name="suppressAllComments" value="false"/>
  27. <property name="suppressDate" value="false"/>
  28. <!--带序列化-->
  29. <!-- <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />-->
  30. <!-- &lt;!&ndash;自动带toString方法&ndash;&gt;-->
  31. <!-- <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />-->
  32. </commentGenerator>
  33. <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  34. <jdbcConnection driverClass="${jdbc.driverClassName}"
  35. connectionURL="${jdbc.url}"
  36. userId="${jdbc.username}"
  37. password="${jdbc.password}">
  38. </jdbcConnection>
  39. <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
  40. NUMERIC 类型解析为java.math.BigDecimal -->
  41. <javaTypeResolver>
  42. <property name="forceBigDecimals" value="false"/>
  43. </javaTypeResolver>
  44. <!-- targetProject:生成PO类的位置 -->
  45. <javaModelGenerator targetPackage="org.javaboy.demo.bean"
  46. targetProject="src/main/java">
  47. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  48. <property name="enableSubPackages" value="false"/>
  49. <!-- 从数据库返回的值被清理前后的空格 -->
  50. <property name="trimStrings" value="true"/>
  51. </javaModelGenerator>
  52. <!-- targetProject:mapper映射文件生成的位置 -->
  53. <sqlMapGenerator targetPackage="mapper"
  54. targetProject="src/main/resources">
  55. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  56. <property name="enableSubPackages" value="false"/>
  57. </sqlMapGenerator>
  58. <!-- targetPackage:mapper接口生成的位置 -->
  59. <javaClientGenerator type="XMLMAPPER"
  60. targetPackage="org.javaboy.demo.mapper"
  61. targetProject="src/main/java">
  62. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  63. <property name="enableSubPackages" value="false"/>
  64. </javaClientGenerator>
  65. <!-- 指定数据库表 -->
  66. <!--<table tableName="userinfo"></table>-->
  67. <!--<table tableName="user"></table>-->
  68. <table tableName="adjustsalary" domainObjectName="AdjustSalary" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
  69. enableSelectByExample="false" selectByExampleQueryId="false"></table>
  70. </context>
  71. </generatorConfiguration>

2.db.properties(数据库配置类)

  1. jdbc.driverClassName=com.mysql.cj.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/vhr?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
  3. jdbc.username=root
  4. jdbc.password=123456

3.MyCommentGenerator.java(自定义comment生成器自定义注释等)

  1. package org.javaboy.demo.config;
  2. import static org.mybatis.generator.internal.util.StringUtility.isTrue;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Properties;
  6. import java.util.Set;
  7. import org.mybatis.generator.api.CommentGenerator;
  8. import org.mybatis.generator.api.IntrospectedColumn;
  9. import org.mybatis.generator.api.IntrospectedTable;
  10. import org.mybatis.generator.api.dom.java.*;
  11. import org.mybatis.generator.api.dom.xml.TextElement;
  12. import org.mybatis.generator.api.dom.xml.XmlElement;
  13. import org.mybatis.generator.config.MergeConstants;
  14. import org.mybatis.generator.config.PropertyRegistry;
  15. /**
  16. * @Title: MyCommentGenerator.java
  17. * @Package com.fendo.mybatis_generator_plus
  18. * @Description: mybatis generator 自定义comment生成器. 基于MBG 1.3.5
  19. * @author findme
  20. * @date 2017年10月5日 下午3:07:26
  21. * @version V1.0
  22. */
  23. public class MyCommentGenerator implements CommentGenerator {
  24. /**
  25. * properties配置文件
  26. */
  27. private Properties properties;
  28. /**
  29. * properties配置文件
  30. */
  31. private Properties systemPro;
  32. /*
  33. * 父类时间
  34. */
  35. private boolean suppressDate;
  36. /**
  37. * 父类所有注释
  38. */
  39. private boolean suppressAllComments;
  40. /**
  41. * 当前时间
  42. */
  43. private String currentDateStr;
  44. public MyCommentGenerator() {
  45. super();
  46. properties = new Properties();
  47. systemPro = System.getProperties();
  48. suppressDate = false;
  49. suppressAllComments = false;
  50. currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date());
  51. }
  52. /**
  53. * Java类的类注释
  54. */
  55. public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {
  56. if (suppressAllComments) {
  57. return;
  58. }
  59. StringBuilder sb = new StringBuilder();
  60. innerClass.addJavaDocLine("/**");
  61. sb.append(" * ");
  62. sb.append(introspectedTable.getFullyQualifiedTable());
  63. sb.append(" ");
  64. sb.append(getDateString());
  65. innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
  66. innerClass.addJavaDocLine(" */");
  67. }
  68. /**
  69. * 为类添加注释
  70. */
  71. public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
  72. if (suppressAllComments) {
  73. return;
  74. }
  75. StringBuilder sb = new StringBuilder();
  76. innerClass.addJavaDocLine("/**");
  77. sb.append(" * ");
  78. sb.append(" * ");
  79. sb.append(introspectedTable.getFullyQualifiedTable());
  80. innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
  81. sb.setLength(0);
  82. sb.append(" * @author ");
  83. sb.append(systemPro.getProperty("user.name"));
  84. sb.append(" ");
  85. sb.append(currentDateStr);
  86. innerClass.addJavaDocLine(" */");
  87. }
  88. /**
  89. * Mybatis的Mapper.xml文件里面的注释
  90. */
  91. public void addComment(XmlElement xmlElement) {
  92. }
  93. /**
  94. *
  95. * @Title addConfigurationProperties @Description:
  96. * 从该配置中的任何属性添加此实例的属性CommentGenerator配置。 这个方法将在任何其他方法之前被调用。 @Author fendo @Date
  97. * 2017年10月5日 下午3:45:58 @return @throws
  98. */
  99. public void addConfigurationProperties(Properties properties) {
  100. this.properties.putAll(properties);
  101. suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE));
  102. suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS));
  103. }
  104. /**
  105. *
  106. * @Title getDateString @Description: 此方法返回格式化的日期字符串以包含在Javadoc标记中和XML注释。
  107. * 如果您不想要日期,则可以返回null在这些文档元素中。 @Author fendo @Date 2017年10月5日
  108. * 下午3:45:58 @return @throws
  109. */
  110. protected String getDateString() {
  111. String result = null;
  112. if (!suppressDate) {
  113. result = currentDateStr;
  114. }
  115. return result;
  116. }
  117. /**
  118. *
  119. * @Title addJavadocTag @Description: 此方法为其添加了自定义javadoc标签。 @Author fendo @Date
  120. * 2017年10月5日 下午3:49:05 @param javaElement @param markAsDoNotDelete @throws
  121. */
  122. protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) {
  123. javaElement.addJavaDocLine(" *");
  124. StringBuilder sb = new StringBuilder();
  125. sb.append(" * ");
  126. sb.append(MergeConstants.NEW_ELEMENT_TAG);
  127. if (markAsDoNotDelete) {
  128. sb.append(" do_not_delete_during_merge");
  129. }
  130. String s = getDateString();
  131. if (s != null) {
  132. sb.append(' ');
  133. sb.append(s);
  134. }
  135. javaElement.addJavaDocLine(sb.toString());
  136. }
  137. /**
  138. * 为枚举添加注释
  139. */
  140. public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
  141. if (suppressAllComments) {
  142. return;
  143. }
  144. StringBuilder sb = new StringBuilder();
  145. innerEnum.addJavaDocLine("/**");
  146. sb.append(" * ");
  147. sb.append(introspectedTable.getFullyQualifiedTable());
  148. innerEnum.addJavaDocLine(sb.toString().replace("\n", " "));
  149. innerEnum.addJavaDocLine(" */");
  150. }
  151. /**
  152. * Java属性注释
  153. */
  154. public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
  155. if (suppressAllComments) {
  156. return;
  157. }
  158. StringBuilder sb = new StringBuilder();
  159. field.addJavaDocLine("/**");
  160. sb.append(" * ");
  161. sb.append(introspectedTable.getFullyQualifiedTable());
  162. field.addJavaDocLine(sb.toString().replace("\n", " "));
  163. field.addJavaDocLine(" */");
  164. }
  165. /**
  166. * 为字段添加注释
  167. */
  168. public void addFieldComment(Field field, IntrospectedTable introspectedTable,
  169. IntrospectedColumn introspectedColumn) {
  170. if (suppressAllComments) {
  171. return;
  172. }
  173. StringBuilder sb = new StringBuilder();
  174. field.addJavaDocLine("/**");
  175. sb.append(" * ");
  176. // 如果注释为空则 则注释上的字段为字段名字
  177. if(introspectedColumn.getRemarks().isEmpty()){
  178. sb.append(introspectedColumn.getActualColumnName());
  179. } else{
  180. sb.append(introspectedColumn.getRemarks());
  181. }
  182. field.addJavaDocLine(sb.toString().replace("\n", " "));
  183. field.addJavaDocLine(" */");
  184. }
  185. /**
  186. * 普通方法的注释,这里主要是XXXMapper.java里面的接口方法的注释
  187. */
  188. public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
  189. if (suppressAllComments) {
  190. return;
  191. }
  192. method.addJavaDocLine("/**");
  193. addJavadocTag(method, false);
  194. method.addJavaDocLine(" */");
  195. }
  196. /**
  197. * 给getter方法加注释
  198. */
  199. public void addGetterComment(Method method, IntrospectedTable introspectedTable,
  200. IntrospectedColumn introspectedColumn) {
  201. // if (suppressAllComments) {
  202. // return;
  203. // }
  204. // method.addJavaDocLine("/**");
  205. // StringBuilder sb = new StringBuilder();
  206. // sb.append(" * ");
  207. // sb.append(introspectedColumn.getRemarks());
  208. // method.addJavaDocLine(sb.toString().replace("\n", " "));
  209. // sb.setLength(0);
  210. // sb.append(" * @return ");
  211. // sb.append(introspectedColumn.getActualColumnName());
  212. // sb.append(" ");
  213. // sb.append(introspectedColumn.getRemarks());
  214. // method.addJavaDocLine(sb.toString().replace("\n", " "));
  215. // method.addJavaDocLine(" */");
  216. return;
  217. }
  218. /**
  219. * 给Java文件加注释,这个注释是在文件的顶部,也就是package上面。
  220. */
  221. public void addJavaFileComment(CompilationUnit compilationUnit) {
  222. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  223. // compilationUnit.addFileCommentLine("/*");
  224. // compilationUnit.addFileCommentLine("*");
  225. // compilationUnit.addFileCommentLine("* " + compilationUnit.getType().getShortName() + ".java");
  226. // compilationUnit.addFileCommentLine("* Copyright(C) 2017-2020 fendo公司");
  227. // compilationUnit.addFileCommentLine("* @date " + sdf.format(new Date()) + "");
  228. // compilationUnit.addFileCommentLine("*/");
  229. return;
  230. }
  231. /**
  232. * 为模型类添加注释
  233. */
  234. public void addModelClassComment(TopLevelClass arg0, IntrospectedTable arg1) {
  235. }
  236. /**
  237. * 为调用此方法作为根元素的第一个子节点添加注释。
  238. */
  239. public void addRootComment(XmlElement arg0) {
  240. }
  241. @Override
  242. public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> set) {
  243. }
  244. @Override
  245. public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> set) {
  246. }
  247. @Override
  248. public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> set) {
  249. }
  250. @Override
  251. public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> set) {
  252. }
  253. @Override
  254. public void addClassAnnotation(InnerClass innerClass, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> set) {
  255. }
  256. /**
  257. * 给setter方法加注释
  258. */
  259. public void addSetterComment(Method method, IntrospectedTable introspectedTable,
  260. IntrospectedColumn introspectedColumn) {
  261. // if (suppressAllComments) {
  262. // return;
  263. // }
  264. // method.addJavaDocLine("/**");
  265. // StringBuilder sb = new StringBuilder();
  266. // sb.append(" * ");
  267. // sb.append(introspectedColumn.getRemarks());
  268. // method.addJavaDocLine(sb.toString().replace("\n", " "));
  269. // Parameter parm = method.getParameters().get(0);
  270. // sb.setLength(0);
  271. // sb.append(" * @param ");
  272. // sb.append(parm.getName());
  273. // sb.append(" ");
  274. // sb.append(introspectedColumn.getRemarks());
  275. // method.addJavaDocLine(sb.toString().replace("\n", " "));
  276. // method.addJavaDocLine(" */");
  277. return;
  278. }
  279. }

4.MyBatisPlugin.java (此类可以实现自定义生成注解)

  1. package org.javaboy.demo.config;
  2. import org.mybatis.generator.api.IntrospectedColumn;
  3. import org.mybatis.generator.api.IntrospectedTable;
  4. import org.mybatis.generator.api.PluginAdapter;
  5. import org.mybatis.generator.api.dom.java.*;
  6. import org.mybatis.generator.internal.util.StringUtility;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.List;
  10. /**
  11. * @ClassName 自定义生成注解的一些方法
  12. * @Description
  13. * @Author find me
  14. * @Date 2020/7/5 0005 15:09
  15. * @Version 1.0
  16. */
  17. public class MyBatisPlugin extends PluginAdapter {
  18. @Override
  19. public boolean validate(List<String> list) {
  20. return true;
  21. }
  22. /**
  23. * 给实体类上生成注释
  24. */
  25. @Override
  26. public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
  27. //添加domain的import 如果不需要则注释掉
  28. topLevelClass.addImportedType("lombok.Data");
  29. //添加domain的注解
  30. topLevelClass.addAnnotation("@Data");
  31. topLevelClass.addJavaDocLine("/**");
  32. String remarks = introspectedTable.getRemarks();
  33. if (StringUtility.stringHasValue(remarks)) {
  34. String[] remarkLines = remarks.split(System.getProperty("line.separator"));
  35. for (String remarkLine : remarkLines) {
  36. topLevelClass.addJavaDocLine(" * " + remarkLine);
  37. }
  38. }
  39. //
  40. StringBuilder sb = new StringBuilder();
  41. topLevelClass.addJavaDocLine("/**");
  42. sb.append(" * @ClassName "+topLevelClass.getType().getShortName());
  43. topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
  44. sb.setLength(0);
  45. sb.append(" * @Description "+topLevelClass.getType().getShortName());
  46. topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
  47. sb.setLength(0);
  48. sb.append(" * @Author "+"findme");
  49. topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
  50. sb.setLength(0);
  51. sb.append(" * @Date "+getDateString());
  52. topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
  53. sb.setLength(0);
  54. sb.append(" * @Version "+"1.0");
  55. topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
  56. introspectedTable.getTableConfiguration().getDomainObjectName();
  57. topLevelClass.addJavaDocLine(" */");
  58. return true;
  59. }
  60. @Override
  61. public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
  62. IntrospectedTable introspectedTable, ModelClassType modelClassType) {
  63. // field.addJavaDocLine("/**");
  64. // String remarks = introspectedColumn.getRemarks();
  65. // if (StringUtility.stringHasValue(remarks)) {
  66. // String[] remarkLines = remarks.split(System.getProperty("line.separator"));
  67. // for (String remarkLine : remarkLines) {
  68. // field.addJavaDocLine(" * " + remarkLine);
  69. // }
  70. // }
  71. // field.addJavaDocLine(" */");
  72. return true;
  73. }
  74. /**
  75. * 为类添加注释 生成如下注释
  76. */
  77. /**
  78. * @Title: MyCommentGenerator.java
  79. * @Package com.fendo.mybatis_generator_plus
  80. * @Description: mybatis generator 自定义comment生成器. 基于MBG 1.3.5
  81. * @author fendo
  82. * @date 2017年10月5日 下午3:07:26
  83. * @version V1.0
  84. */
  85. @Override
  86. public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
  87. //添加Mapper的import
  88. interfaze.addImportedType(new FullyQualifiedJavaType("org.apache.ibatis.annotations.Mapper"));
  89. interfaze.addImportedType(new FullyQualifiedJavaType("org.springframework.stereotype.Component;"));
  90. //添加Mapper的注解
  91. StringBuilder sb = new StringBuilder();
  92. interfaze.addJavaDocLine("/**");
  93. sb.append(" * @ClassName "+interfaze.getType().getShortName());
  94. interfaze.addJavaDocLine(sb.toString().replace("\n", " "));
  95. sb.setLength(0);
  96. sb.append(" * @Description "+interfaze.getType().getShortName());
  97. interfaze.addJavaDocLine(sb.toString().replace("\n", " "));
  98. sb.setLength(0);
  99. sb.append(" * @Author "+"findme");
  100. interfaze.addJavaDocLine(sb.toString().replace("\n", " "));
  101. sb.setLength(0);
  102. sb.append(" * @Date "+getDateString());
  103. interfaze.addJavaDocLine(sb.toString().replace("\n", " "));
  104. sb.setLength(0);
  105. sb.append(" * @Version "+"1.0");
  106. interfaze.addJavaDocLine(sb.toString().replace("\n", " "));
  107. introspectedTable.getTableConfiguration().getDomainObjectName();
  108. interfaze.addJavaDocLine(" */");
  109. /*为类添加注释*/
  110. interfaze.addAnnotation("@Mapper");
  111. interfaze.addAnnotation("@Component");
  112. return true;
  113. }
  114. @Override
  115. public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
  116. //不生成getter
  117. return true;
  118. }
  119. @Override
  120. public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
  121. //不生成setter
  122. return true;
  123. }
  124. protected String getDateString() {
  125. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  126. return sdf.format(new Date()) ;
  127. }
  128. }

5.MyBatisGeneratorTest(程序入口)

  1. package org.javaboy.demo;
  2. import org.junit.Test;
  3. import org.mybatis.generator.api.MyBatisGenerator;
  4. import org.mybatis.generator.config.Configuration;
  5. import org.mybatis.generator.config.xml.ConfigurationParser;
  6. import org.mybatis.generator.internal.DefaultShellCallback;
  7. import java.io.File;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. public class MyBatisGeneratorTest {
  11. @Test
  12. public void generatorTest() throws Exception{
  13. try {
  14. List<String> warnings = new ArrayList<String>();
  15. boolean overwrite = true;
  16. // 指向逆向工程配置文件
  17. File configFile = new File("src/main/resources/generatorConfig.xml");
  18. ConfigurationParser cp = new ConfigurationParser(warnings);
  19. Configuration config = cp.parseConfiguration(configFile);
  20. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  21. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
  22. myBatisGenerator.generate(null);
  23. System.out.println("结束");
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }

6.pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.javaboy</groupId>
  7. <artifactId>mybatis-generator</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <dependencies>
  10. <!--日志依赖-->
  11. <dependency>
  12. <groupId>log4j</groupId>
  13. <artifactId>log4j</artifactId>
  14. <version>1.2.17</version>
  15. </dependency>
  16. <!--mybatis核心-->
  17. <dependency>
  18. <groupId>org.mybatis</groupId>
  19. <artifactId>mybatis</artifactId>
  20. <version>3.2.8</version>
  21. </dependency>
  22. <!--junit依赖-->
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.12</version>
  27. </dependency>
  28. <!--数据库依赖-->
  29. <dependency>
  30. <groupId>mysql</groupId>
  31. <artifactId>mysql-connector-java</artifactId>
  32. <version>8.0.20</version>
  33. </dependency>
  34. <!--生成pomapper.javamapper.xml核心jar-->
  35. <dependency>
  36. <groupId>org.mybatis.generator</groupId>
  37. <artifactId>mybatis-generator-core</artifactId>
  38. <version>1.3.6</version>
  39. </dependency>
  40. </dependencies>
  41. <build>
  42. <plugins>
  43. <!-- mybatis-generator自动生成代码插件 -->
  44. <plugin>
  45. <groupId>org.mybatis.generator</groupId>
  46. <artifactId>mybatis-generator-maven-plugin</artifactId>
  47. <version>1.3.2</version>
  48. <!-- 配置generatorConfig.xml的路径和名称 -->
  49. <configuration>
  50. <configurationFile>
  51. ${basedir}\src\main\resources\generatorConfig.xml
  52. </configurationFile>
  53. </configuration>
  54. <!-- 配置generator运行插件,使maven执行generator -->
  55. <!-- <executions>-->
  56. <!-- <execution>-->
  57. <!-- <id>Generate MyBatis Artifacts</id>-->
  58. <!-- <goals>-->
  59. <!-- <goal>generate</goal>-->
  60. <!-- </goals>-->
  61. <!-- </execution>-->
  62. <!-- </executions>-->
  63. </plugin>
  64. <plugin>
  65. <groupId>org.apache.maven.plugins</groupId>
  66. <artifactId>maven-compiler-plugin</artifactId>
  67. <configuration>
  68. <source>6</source>
  69. <target>6</target>
  70. </configuration>
  71. </plugin>
  72. </plugins>
  73. </build>
  74. </project>