Mybatis generator使用
来源:互联网 发布:国产数据库排名 编辑:程序博客网 时间:2024/06/17 13:32
Mybatis Generator
简单翻译一下官网的东西,http://www.mybatis.org/generator/quickstart.html
作用
能够自动生成MyBatis的相关代码和配置文件,如:
- java pojos 即相关的java bean
- mybatis的mapper配置文件以及其需要的SQL语句
- java client类文件(可选)
注意事项:
- 自动生成机制会合并XML文件,并且对于你在该文件中修改的东西不会覆盖
- 自动生成机制不会合并java 文件,会覆盖或者创建一个新的类
简单入门
配置
需要一个配置文件,并且起码需要以下几个配置
A
<jdbcConnection>
element to specify how to connect to the target database一个jdbcConnection元素来配置连接的数据库
A
<javaModelGenerator>
element to specify target package and target project for generated Java model objects给生成的java模型配置目标项目的包路径
A
<sqlMapGenerator>
element to specify target package and target project for generated SQL map files给生成的xml配置文件指定目标项目的包路径
(Optionally) A
<javaClientGenerator>
element to specify target package and target project for generated client interfaces and classes (you may omit the<javaClientGenerator>
element if you don’t wish to generate Java client code)可选:给生成的java client接口以及类配置文件指定目标项目的包路径
At least one database
<table>
element至少一个数据库table的配置元素
运行
运行下面这句话来执行generator,产生相关的文件,注意-overwrite不加的话,如果java文件出现冲突,将会重命名生成的文件
java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite
使用
然后就可以在生成的代码中开发你自己的功能了
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> <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver" connectionURL="jdbc:db2:TEST" userId="db2admin" password="db2admin"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="test.model" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="test.xml" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" > <property name="useActualColumnNames" value="true"/> <generatedKey column="ID" sqlStatement="DB2" identity="true" /> <columnOverride column="DATE_FIELD" property="startDate" /> <ignoreColumn column="FRED" /> <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> </table> </context></generatorConfiguration>
小案例:
generator配置:
<?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="admin"> </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="cn.itheima.pojo" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="cn.itheima.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.itheima.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定数据库表 --><!-- <table tableName="items"></table> --> <table tableName="orders"></table><!-- <table tableName="orderdetail"></table> --> <table tableName="user"></table> <!-- <table schema="" tableName="sys_user"></table> <table schema="" tableName="sys_role"></table> <table schema="" tableName="sys_permission"></table> <table schema="" tableName="sys_user_role"></table> <table schema="" tableName="sys_role_permission"></table> --> <!-- 有些表的字段需要指定java类型 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context></generatorConfiguration>
java代码生成:
import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class StartServer { public void generator() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("genarator.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } public static void main(String[] args) throws Exception { try { StartServer startServer = new StartServer(); startServer.generator(); } catch (Exception e) { e.printStackTrace(); }}}
- mybatis工具generator使用
- mybatis generator 使用
- mybatis generator 使用
- mybatis generator 使用
- Mybatis-generator的使用
- mybatis generator使用
- mybatis-generator的使用
- MyBatis generator 的使用
- mybatis-generator使用教程
- mybatis-generator的使用
- Mybatis Generator 使用
- mybatis-generator的使用
- mybatis generator使用
- mybatis-generator-core使用
- idea 使用 mybatis-generator
- mybatis generator 的使用
- mybatis generator的使用
- mybatis generator columnRenamingRule使用
- Servlet和JSP
- ORB-SLAM(四)追踪
- unity shader 流光效果
- 【C语言】单链表的所有操作的实现(包括PopBack、PushBack、PopFront、PushFront、Insert)
- 通过Jedis操作Redis的五种数据类型
- Mybatis generator使用
- Mountain Number (数位dp)
- 大家请关注我的简书
- O
- 在ubntu下安装Sublime text
- 每天一道算法题——链表反转
- Just a Hook(hdu 1698)
- JVM运行时内存布局
- 让你分分钟理解 JavaScript 闭包