MyBatis Generator
MyBatis Generator(MBG)是MyBatis 和iBATIS的代码生成器。它可以帮助我们根据数据库中表的设计生成对应的实体类,Mapper xml 文件,接口以及帮助类(也就是我们可以借助该类来进行简单的CRUD操作,适用于单表查询),这样就避免了我们每使用到一张表的数据就需要手动去创建对应的类和xml文件,这就帮我们节约了大量的时间去开发和业务逻辑有关的功能,但是如果对联合查询和存储过程您仍然需要手写SQL和对象代码。
在Eclipse中使用MyBatis Generator
- 在Eclipse 市场中搜索安装MyBatis Generator插件。(Help --- Eclipse Marketplace...)
等待安装完成后,重启Eclipse。
注:MyBatis Generator 1.3.7 需要Java 8 及以上 - 创建MyBatis Generator配置文件,如下图
默认的名称为 generatorConfig.xml
- 填写相关配置信息
主要包括以下几方面:
· jdbcConnection信息指定如何连接到目标数据库
· 目标包位置和javaModelGenerator的目标项目
· 目标包位置和sqlMapGenerator的目标项目
· 至少一个数据库表<?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> <context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="123456"> </jdbcConnection> <!-- <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> <!-- targetProject:生成PO类的位置 --> <javaModelGenerator targetPackage="com.itheima.springmvc.pojo" targetProject="springmvc-mybatis\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="com.itheima.springmvc.mapper" targetProject="springmvc-mybatis\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.itheima.springmvc.mapper" targetProject="springmvc-mybatis\src\main\java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定数据库表 --> <table schema="" tableName="user"></table> <table schema="" tableName="item"></table> <!-- 有些表的字段需要指定java类型 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context> </generatorConfiguration>
targetProject 一般为项目名称 + 目标包位置所在的根目录位置,如用Maven搭建的文件
targetProject="springmvc-mybatis\src\main\java"
targetPackage 目标包的包路径 -
运行generatorConfig.xml。在该文件右键选择Run As> Run MyBatis Generator, 等待运行结果。
运行结果:
查看项目文件目录
一张表会生成4个文件。MyBatis Generator能够根据配置生成不同类型的代码,代码包含了数据库表对应的实体类、mapper接口类、mapperXML文件和Example对象等。这些代码中几乎包含了全部的表单操作方法,可以极大程度上方便我们使用MyBatis。
注:eclipse中的MyBatis Generator不会覆盖您对其生成的对象所做的任何自定义更改。您可以反复运行它,而不必担心丢失自定义更改。(但是,反复运行生成的代码会重复而报错)
参考:http://www.mybatis.org/generator/running/runningWithEclipse.html