这段时间突然想静下来好好写一个像样的项目,然后亲自尝试一下从数据库设计开始一步步架构自己的思想到部署到服务器上,也可以在这个过程中总结自己有哪些技术栈不会,需要充电。
初步把数据库的表结构设计好,接下来就感觉力不从心了,几十张表,自己一个个实体类建立一面浪费精力,一面也没有学习价值,很早以前就知道mybatis这个半自动化的ORM框架有逆向工程这个架子,以前总是在维护别人的系统,没有机会尝试这个强大的功能,今天拿过来试试,还真挺好用,自动帮我们创建好了实体类和Mapper接口类和Mapper映射文件。
下面记录下具体步骤。
一.首先建立一个maven工程,当然普通的java工程也可以
区别是普通java工程要自己下载jar包并加入到项目,而maven工程jar包管理可以交给maven仓库管理。
先说说要用到的坐标有哪些吧
<!-- mybatis -->
<!-- mybatis-genertor自动生成代码器 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!-- mybatis用于生成代码的配置文件 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
下面来说说这些jar包
1.既然是mybatis提供的逆向工程,那么mybatis包是肯定要有的。
2.逆向工程肯定要有mybatis-generator-core这个逆向工程核心包。
3.根据数据库设计的表结构生成实体类等文件,和数据库打交道少不了mysql-connection包。
4.最后一点就是代码里我们没用main入口函数生成,所以等价于我们是利用maven启动一个线程执行生成文件,所以要在maven最后边的里配置一下mybatis-generator-maven-plugin和具体的配置文件路径。
二.具体配置文件里的配置内容
<?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>
<!-- 数据库驱动-->
<classPathEntry location="C:\Users\asus.DESKTOP-9D7DVCG\.m2\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/>
<!-- context 里的配置必须按照提示标签顺序进行配置否则.xml 文件会报错-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码
注意这里的url平时我们都是用& 符号,但在逆向工程里要用&;具体原因感兴趣的自己去查查,我就不多说了
-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shiro_test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="test.domain" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="test.mapping" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="test.IDao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="users" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
最后也就是启动的过程了,有多种方法,这里介绍两种
第一种直接在IDE里右击项目在弹出的Run As->Maven Build点进去
然后在goals加入命令 mybatis-generator:generate- e然后run就行了。
成功后先看控制台信息
看到BUILD SUCCESS后刷新项目就OK了
第二种仅仅只是在黑窗口 里进行
打开cmd进入到lib目录下,然后执行命令
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
当看到显示
mybatis generator finished successfully后就成功了,这里就不贴图了,喜欢炫酷的朋友自己试试。