STS 4 mybatis generatorConfig.xm
前言
写这篇文章我基本把网上能找到的关于generatorConfig.xml的文章全看了一遍,用一句话来概括,就是你看得想砸电脑。没有一篇文章把这个东西解读得能让人看得懂。。。。当然,对于初学者,我敢说,最好的文章除了这篇没有别的了,我是浪费了太多时间在这个东西上,所以我希望写出来能让人看明白,不用去到处翻英文文档。
好了,废话不多说。这里有一份 generatorConfig.xml 文件作为学习的对象。
首先我们先来问一个问题,generatorCofig.xml这个文件是如何产生的,需要自己手动创建么?答案是在sts4里面,你不需要手动创建,你只需要点几下鼠标,文件就能出来。需要安装mybatis generator eclipse插件。当然,你要是搜mybatis generator,网上又是一堆教程让你摸不着头脑,你都不知道用那个好,众说纷纭。但我告诉你,在sts4中,只有一条路最爽,那就是用插件,别的不要去折腾。这里是教你如何在sts4中安装mybatis generator插件。
假如你已经安装好了mybatis generator插件,下面我们就开始来生成generatorConfig.xml文件了。
步骤
一、我们把这个文件生成到工程目录src/main/resources下,如图:
generatorConfig1.png generatorConfig2.png generatorConfig3.png
二、生成好以后,你得到的默认内容都是默认配置,我们需要自己来配置数据库相关的东西。
解析generatorConfig.xml
打开我例子中给的generatorCofing.xml,我们来解析一下,到底里面放了什么。一句一句来。
1、classPathEntry 标签
<classPathEntry
location="/Users/xiangronghua/.m2/repository/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar" />
这句话的意思是连接mysql的驱动放在哪个位置。你可以使用命令行工具去看一下你的目录下能使用的驱动版本号,版本号要对上,不然执行就得报错。比如我的如下图:
mysql-connect.png
2、context 标签 (可以忽略)
<context id="context1">
3、commentGenerator 标签
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
默认就可以了。
4、jdbcConnection 标签
<!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/Stock" userId="root" password="test" />
这句话的意思就是你得先创建好一个数据库,不管你用什么工具,而且数据库里要有表结构。注意:数据库存在是本文章的前提,没有数据库那你先建数据库,建表。本案例中Stock
是数据库名称。
5、javaModelGenerator 标签
<javaModelGenerator targetPackage="com.scottban.jihejingjia.bean" targetProject="jihejingjiaServer/src/main/java" />
这句话的意思是你要生成的数据库模型要放到哪个位置。targetPackage
就是你工程的包结构。这里最容易让人摸不着头脑。我要仔细说一下这里,为什么我的包名是com.scottban.jihejingjia.bean
,先来看我的项目结构,如图:
这个com.scottban.jihejingjia
是我用来放程序入口的,是已经建好的包。现在我需要bean包还没有创建,我不需要自己去创建,为什么?因为这个插件就是干这个事情的。一会儿只要执行一下,bean包就会自己生成。mybatis generator就是这么强大,不然要它毛用。
到这里,也就是targetPackage
属性指定的是我的bean文件的路径。
targetProject
指定的是项目的相对路径。jihejingjiaServer/src/main/java
意思就是当前项目是jihejingjiaServer
,它下面的子文件夹src/main/java
。
太绕了,总结一句话,这个标签就是告诉mybatis generator 要在相对路径为jihejingjiaServer/src/main/java/com/scottban/jihejingjia/bean
目录下生成数据库的bean文件。真费劲。如果这个你明白了,下面的两个标签你就会明白了,一个道理。
6、sqlMapGenerator 标签
<sqlMapGenerator targetPackage="com.scottban.jihejingjia.mapper" targetProject="jihejingjiaServer/src/main/java" />
翻译过来就是:在相对路径为jihejingjiaServer/src/main/java/com.scottban.jihejingjia.mapper
生成数据库的mapper配置文件。
7、javaClientGenerator 标签
<javaClientGenerator targetPackage="com.scottban.jihejingjia.dao" targetProject="jihejingjiaServer/src/main/java" type="XMLMAPPER" />
翻译过来就是:在相对路径为jihejingjiaServer/src/main/java/com.scottban.jihejingjia.dao
生成数据库的dao文件。
8、table 标签
<table schema="ssm1" tableName="User" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<columnOverride column="userId" property="userId" />
<columnOverride column="expireTime" property="expireTime" />
<columnOverride column="phoneNumber" property="phoneNumber" />
<columnOverride column="nickName" property="nickName" />
</table>
这个标签就是对应你数据库里的表名称,和你要生成的模型文件对应的名称。其中属性tableName
是数据库的表名字,domainObjectName
是你想生成的模型的名字。里面的columnOverride
是什么?columnOverride
是给你的字段重命名。如果这个你不加,默认生成的所有模型字段都是小写,所以建议你要加上,你数据库里的字段是怎么命名的这里就怎么命名一下就行了,当然字段都是小写的,比如password这种字段全是小写的就没必要在这里加了。这里解决的是驼峰命名的问题。驼峰命名已经是软件开发行业的潜在标准了,这样方面服务端和前端的json一步解析。
好了,终于说完了。基本上按照我这个配置,负责认地告诉你,没有问题。如何执行生成文件请看STS 4 如何配置 mybatis generator 并执行生成对应的文件。