在IDEA中使用MyBatis Generator逆向工程生成代码

本文介绍一下Maven工具使用Mybatis逆向工程generator生成JavaBean和mapper以及映射文件(entity层、dao层、mapper层)。

一、配置Maven pom.xml 文件

<!-- mybatis -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.2</version>
    </dependency>

<!-- mybatis整合spring 的适配包 -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

<!-- mybatis逆向工程 -->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.2</version>
    </dependency>

在pom.xml增加以下插件(------逆向工程插件一定要给它配一个自己的数据库驱动------):

<plugins>
      <!--mybatis 逆向工程插件-->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
          <overwrite>false</overwrite>
          <verbose>true</verbose>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
          </dependency>
        </dependencies>
      </plugin>
</plugins>

配置好Maven插件,下面需要配置插件需要配置文件

二、在maven项目下的src/main/resources 目录下建立名为 Maven的项目配置文件存放路径如下图:generatorConfig.xml和dbconfig.properties配置文件,

Maven的项目配置文件存放路径如下图:

generatorConfig.xml( 官方规范命名 )       代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
	<!--引入数据库配置文件以解耦-->
	<properties resource="dbconfig.properties"/>

	<context id="DB2Tables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
			<!-- 是否去除所有自动生成的文件的时间戳,默认为false -->
			<!-- <property name="suppressDate" value="false"/> -->
		</commentGenerator>
		<!-- 配置数据库连接 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/ssm_demo"
			userId="root"
			password="123456">
		</jdbcConnection>
		<!--Oracle数据库的连接信息-->
		<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
			connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
			userId="yycg"
			password="yycg">
		</jdbcConnection> -->

		<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
             NUMERIC 类型解析为java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- 指定javaBean生成的位置 -->
		<!-- targetPackage:包名称(自定义)  targetProject:项目路径(自定义)   -->
		<javaModelGenerator targetPackage="com.gpdi.entity"
			targetProject=".\src\main\java">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="true" />
			<!-- 从数据库返回的值被清理前后的空格  -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!--指定sql映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="mapper"
		targetProject=".\src\main\resources">
			<property name="enableSubPackages" value="true" />
		</sqlMapGenerator>

		<!-- 指定dao接口生成的位置,mapper接口 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.gpdi.dao"
			targetProject=".\src\main\java">
			<property name="enableSubPackages" value="true" />
		</javaClientGenerator>


		<!-- table指定每个表的生成策略 -->
		<table tableName="t_abnormal_forms" domainObjectName="Abnormal"></table>
		<!--<table tableName="t_imagepath" domainObjectName="ImagePath"></table>-->
		<!--<table tableName="t_wx_msg_out" domainObjectName="WxMsgOut"></table>-->
		<!--<table tableName="t_user" domainObjectName="User"></table>-->
		<!--<table tableName="t_version" domainObjectName="Version"></table>-->
		<!--<table tableName="" domainObjectName=""></table>-->
	</context>
</generatorConfiguration>

dbconfig.properties代码如下:

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_demo?useUnicode=true&characterEncoding=UTF-8
jdbc.user=root
jdbc.password=123456

三、在Intellij IDEA 使用Maven Projects运行mybatis-generator-maven-plugin插件

 

看自己的entity、dao、mapper层是否自动生成代码  (生成路径配置在generatorConfig.xml里)

 

完 ! 预知后事如何请看下集.....

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。 通俗解释: 对于软件项目的逆向工程就如同盖楼一样,一栋大楼摆在面前,在不知道大楼图纸(图纸其实就是程序的架构)的前提下,仿照现有的大楼结构(发布好的项目结构)盖出相同的大楼。 1、在eclipse建立maven项目(单击链接查看教程) 2、打开建立的该项目所在文件夹:项目右击->Properties 3、找到该文件夹所在位置,并找到src目录 4、还原webapp文件夹(前台页面内容)的内容:将放在服务器tomcat的webapps文件夹下的.war文件拷贝出来解压将解压的内容放到原webapp文件夹 5、还原resources文件夹(配置文件信息)的内容:依然在解压的.war文件找:WEB-INF->classes的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹(项目的类包)内容:将5的com文件夹的内容直接打开任意一个最下面的子文件,将其拖到我们之前下载好的反编译软件 7、通过eclipse重新加载该项目,将反编译出来的每一个类按照相应的结构、命名在原项目建立 8、引入相关的jar包:jar包文件在解压的.war文件:WEB-INF->lib文件夹下;项目右击->build path->Configure build path->Libraries->Add External JARs.. 选择jar包所在的文件也就是上面的lib文件夹位置 9、更新项目,并在eclipse添加tomcat(点击链接查看教程) 10、解决项目的问题,小编遇到的最多的问题是因为继承关系用到了泛型,所以在反编译的时候丢失了List或者set返回值类型,找到错误上面定义的地方,将对应的类型添加到上面就ok了! 11、appserver端代码搭建的时候,用到了hadoop技术,可能编译的时候会出现本地没有hadoop的错误(单击链接查看解决方法) 注:反编译完成之后,在测试功能的时候,发现导出excel的逻辑有所错误,这方面还没有搞懂是当时人为问题还是反编译过程的问题,不过最后跟了代码也解决了! 【总结】 以上是小编在研究完成之后属于教程性的东西,将其小编实践以及思考的部分过程省略了。 活儿干完之后,得到经理和领导的大大赞扬是少不了的,另外吃肉也是少不了的。 但是更多的是,小编在解决这个大问题的时候的思考过程,其困难部分: 1、研究生成war包之后,对应的文件的结构 2、研究java类的打包形式,对应的jar包的存放位置 3、对于该项目框架的梳理过程 4、整合过程,对于每一步操作细心的要求 5、整合完成,解决编译报错的过程 虽然活儿干完了,项目也跑了起来,但是对于里面的技术点自己还是得深入到代码去研究,去感受,还有其业务逻辑的梳理,以及设计思想的升华都需要去了解去学习。 只要相信自己,并付出与行动,终究会取得胜利的桂冠,加油O(∩_∩)O~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackIT健_686

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值