经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
myBatis逆向工程的使用
来源:cnblogs  作者:小拾光里的鱼  时间:2018/11/20 18:41:45  对本文有异议

使用myBatis Generator可以快速生成实体类、dao类和mapper文件。有两种方式,现在说的是比较灵活的方式。本文栗子使用的是IDEA,目录结构为maven项目的结构。

1.在pom.xml文件中加入myBatis Generator需要的jar包

  1. <!-- mybatis核心包 -->
  2. <dependency>
  3. <groupId>org.mybatis</groupId>
  4. <artifactId>mybatis</artifactId>
  5. <version>3.3.0</version>
  6. </dependency>
  7. <!-- mybatis-generator-core 反向生成java代码-->
  8. <dependency>
  9. <groupId>org.mybatis.generator</groupId>
  10. <artifactId>mybatis-generator-core</artifactId>
  11. <version>1.3.5</version>
  12. </dependency>

2.写相关的配置文件,mbgConfiguration.xml和jdbc.properties;

mbgConfiguration.xml配置文件代码如下:

  1. <?xml version = "1.0" encoding = "UTF-8" ?>
  2. <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  4. <!-- 第一种mybatis逆向生成xml配置 -->
  5. <generatorConfiguration>
  6. <properties resource="jdbc.properties" />
  7. <context id="sqlserverTables" targetRuntime="MyBatis3">
  8. <!-- 生成的pojo,将implements Serializable-->
  9. <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
  10. <commentGenerator>
  11. <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  12. <property name="suppressAllComments" value="true" />
  13. </commentGenerator>
  14.  
  15. <!-- 数据库链接URL、用户名、密码 -->
  16. <jdbcConnection driverClass="${jdbc.driverClassName}"
  17. connectionURL="${jdbc.url}"
  18. userId="${jdbc.username}"
  19. password="${jdbc.password}">
  20. </jdbcConnection>
  21.  
  22. <!--
  23. 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
  24. true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
  25. -->
  26. <javaTypeResolver>
  27. <property name="forceBigDecimals" value="false" />
  28. </javaTypeResolver>
  29.  
  30. <!--
  31. 生成model模型,对应的包路径,以及文件存放路径(targetProject),targetProject可以指定具体的路径,如./src/main/java,
  32. 也可以使用“MAVEN”来自动生成,这样生成的代码会在target/generatord-source目录下
  33. -->
  34. <!--<javaModelGenerator targetPackage="com.joey.mybaties.test.pojo" targetProject="MAVEN">-->
  35. <javaModelGenerator targetPackage="com.niit.test.model" targetProject="src/main/java">
  36. <property name="enableSubPackages" value="true"/>
  37. <!-- 从数据库返回的值被清理前后的空格 -->
  38. <property name="trimStrings" value="true" />
  39. </javaModelGenerator>
  40.  
  41. <!--对应的mapper.xml文件 -->
  42. <sqlMapGenerator targetPackage="com.niit.test.mapper" targetProject="src/main/java">
  43. <property name="enableSubPackages" value="true"/>
  44. </sqlMapGenerator>
  45.  
  46. <!-- 对应的Mapper接口类文件 -->
  47. <javaClientGenerator type="XMLMAPPER" targetPackage="com.niit.test.dao" targetProject="src/main/java">
  48. <property name="enableSubPackages" value="true"/>
  49. </javaClientGenerator>
  50.  
  51.  
  52. <!-- 列出要生成代码的所有表,这里配置的是不生成Example文件 -->
  53. <table tableName="tb_user" domainObjectName="UserInfo"
  54. enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
  55. enableSelectByExample="false" selectByExampleQueryId="false" >
  56. <property name="useActualColumnNames" value="false"/>
  57. </table>
  58. </context>
  59. </generatorConfiguration>

jdbc.properties文件如下:

  1. ####################### DB Connection Config #######################
  2. ###----------------- DB Type -----------------
  3. databaseType=mysql
  4. ###----------------- MySQL5+ -----------------
  5. jdbc.driverClassName=com.mysql.jdbc.Driver
  6. jdbc.url=jdbc:mysql://localhost:3306/tb_mybatis?useUnicode=true&characterEncoding=utf-8
  7. jdbc.username=root
  8. jdbc.password=12321

3.写GenMain类文件;

  1. package com.niit.test.main;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import org.mybatis.generator.api.MyBatisGenerator;
  8. import org.mybatis.generator.config.Configuration;
  9. import org.mybatis.generator.config.xml.ConfigurationParser;
  10. import org.mybatis.generator.exception.InvalidConfigurationException;
  11. import org.mybatis.generator.exception.XMLParserException;
  12. import org.mybatis.generator.internal.DefaultShellCallback;
  13. /**
  14. * Created by Audrey on 2018/11/19 17:05
  15. */
  16. public class GenMain {
  17. public static void main(String[] args) {
  18. List<String> warnings = new ArrayList<String>();
  19. boolean overwrite = true;
  20. String genCfg = "/mbgConfiguration.xml";
  21. File configFile = new File(GenMain.class.getResource(genCfg).getFile());
  22. ConfigurationParser cp = new ConfigurationParser(warnings);
  23. Configuration config = null;
  24. try {
  25. config = cp.parseConfiguration(configFile);
  26. } catch (IOException e) {
  27. e.printStackTrace();
  28. } catch (XMLParserException e) {
  29. e.printStackTrace();
  30. }
  31. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  32. MyBatisGenerator myBatisGenerator = null;
  33. try {
  34. myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
  35. } catch (InvalidConfigurationException e) {
  36. e.printStackTrace();
  37. }
  38. try {
  39. myBatisGenerator.generate(null);
  40. } catch (SQLException e) {
  41. e.printStackTrace();
  42. } catch (IOException e) {
  43. e.printStackTrace();
  44. } catch (InterruptedException e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. }

4.运行GenMain类文件,即可生成实体类、dao类和mapper文件。

每次修改数据库时,都可以把原来生成的文件删掉,重新运行GenMain文件重新生成。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号