mybatis逆向工程生成java代码和xml配置

mybatis官方提供了一个逆向工程包,能够针对数据库表自动生成mybatis执行所须要的Pojo、Mapper xml文件、Mapper 接口文件。 java

mybatis-generator有不少种用法:命令行、eclipse/IDEA、Maven插件,其使用原理彻底同样。 
不管哪一种方式,首先要准备两个组件包:mybatis-generator-core-1.X.X.jar 和MySQL-connector-Java-5.X.XX.jar (点击下载两个jar包)mysql

命令行方式
从这个入手,由于最方便。 
一、新建任意目录(D:\A-TWM\Mybatis),把两个组件拷入目录。 sql


二、新建配置文件,命名:config.xml 
补充:下载好的jar包里面有帮助文档,打开后里面有配置文件的模板。 
config.xml内容:数据库

pojo 的映射路径为当前正在作的项目的路径下面(也能够为任意路径下面,只不过写在其余路径的时候,在拷贝到当前项目中须要修改每个pojo 的 package 的名称)api

<?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="D:\A-TWM\Mybatis\mysql-connector-java-5.1.26-bin.jar" />

<context id="sqlGenerate" targetRuntime="MyBatis3">
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>

<!-- 数据库连接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/tangwenmingdb?characterEncoding=utf8"
userId="root" password="root">
</jdbcConnection>

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

<!-- 生成Pojo包名和位置 -->
<javaModelGenerator targetPackage="twm.mybatisdemo.pojo"
targetProject="D:\A-TWM\Mybatis\src">
<!-- enableSubPackages:是否让schema做为包的后缀 -->
<property name="enableSubPackages" value="true" />
<!-- 清理先后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>

<!-- 生成Mapper映射XML文件位置 -->
<sqlMapGenerator targetPackage="twm.mybatisdemo.mapper"
targetProject="D:\A-TWM\Mybatis\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>

<!-- 生成Mapper接口文件位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="twm.mybatisdemo.mapper" targetProject="D:\A-TWM\Mybatis\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>

<!-- 要生成哪些表(更改tableName和domainObjectName就能够) -->
<!-- tableName:要生成的表名
domainObjectName:生成后的实例名
enableCountByExample:Count语句中加入where条件查询,默认为true开启
enableUpdateByExample:Update语句中加入where条件查询,默认为true开启
enableDeleteByExample:Delete语句中加入where条件查询,默认为true开启
enableSelectByExample:Select多条语句中加入where条件查询,默认为true开启
selectByExampleQueryId:Select单个对象语句中加入where条件查询,默认为true开启
-->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />
<table tableName="category" />
<table tableName="order"/>
<table tableName="product"/>
<table tableName="order_detail"/>
</context>
</generatorConfiguration>
若是table里边不配置property,默认将全部字段逆向生成为类属性。 mybatis

若是有些字段并不想生成为类属性,能够用ignoreColumn标签:app

<ignoreColumn column="FRED" />//忽略字段
还能够指定逆向生成时,字段到属性的转换对应关系dom

<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//不管字段是什么类型,生成的类属性都是varchar。
三、经过cmd打开命令窗口 
运行:java -jar mybatis-generator-core-1.3.2.jar -configfile config.xml -overwrite 
出现MyBatis Generator finished successfully.表示运行成功,将指定生成位置(这里是src)的源码拷入工做项目中便可。 eclipse


Eclipse方式
一、任意新建一个 java project、将组件和将配置文件config.xml放到对应的目录,其中 Main.java  就是要运行的主程序ide


二、在main函数中写代码运行

package Main; 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 main { public static void main(String[] args) throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指向逆向工程配置文件,只须要把下面这个文件改成你本身写的配置文件便可 File configFile = new File("generatorConfig.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); }}三、以application的方式运行就能够了--------------------- 做者:maxiao1204 来源:CSDN 原文:https://blog.csdn.net/maxiao1204/article/details/79148114 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索