mybatis逆向工程生成java代码和xml配置
mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo、Mapper xml文件、Mapper 接口文件。
mybatis-generator有很多种用法:命令行、eclipse/IDEA、Maven插件,其使用原理完全一样。 
无论哪种方式,首先要准备两个组件包:mybatis-generator-core-1.X.X.jar 和MySQL-connector-Java-5.X.XX.jar (点击下载两个jar包)
命令行方式
从这个入手,因为最方便。 
1、新建任意目录(D:\A-TWM\Mybatis),把两个组件拷入目录。
2、新建配置文件,命名:config.xml 
补充:下载好的jar包里面有帮助文档,打开后里面有配置文件的模板。 
config.xml内容:
pojo 的映射路径为当前正在做的项目的路径下面(也可以为任意路径下面,只不过写在其他路径的时候,在拷贝到当前项目中需要修改每一个pojo 的 package 的名称)
<?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,默认将所有字段逆向生成为类属性。
如果有些字段并不想生成为类属性,可以用ignoreColumn标签:
<ignoreColumn column="FRED" />//忽略字段 
还可以指定逆向生成时,字段到属性的转换对应关系
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//无论字段是什么类型,生成的类属性都是varchar。 
3、通过cmd打开命令窗口 
运行:java -jar mybatis-generator-core-1.3.2.jar -configfile config.xml -overwrite 
出现MyBatis Generator finished successfully.表示运行成功,将指定生成位置(这里是src)的源码拷入工作项目中即可。
Eclipse方式
1、任意新建一个 java project、将组件和将配置文件config.xml放到对应的目录,其中 Main.java  就是要运行的主程序
2、在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);
	}
}
3、以application的方式运行就可以了
--------------------- 
作者:maxiao1204 
来源:CSDN 
原文:https://blog.csdn.net/maxiao1204/article/details/79148114 
版权声明:本文为博主原创文章,转载请附上博文链接!
mybatis逆向工程生成java代码和xml配置的更多相关文章
- mybatis自动生成java代码
		SSM框架没有DB+Record模式,写起来特别费劲,只能用下面的方法勉强凑合. 上图中,*.jar为下载的,src为新建的空白目录,.xml配置如下. <?xml version=" ... 
- MyBatis逆向工程生成配置 generator (生成pojo、mapper.xml、mapper.java)
		MyBatis逆向工程生成 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml ... 
- mybatis逆向工程生成代码
		1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po. ... 
- Mybatis逆向工程生成po、mapper接口、mapper.xml
		Mybatis逆向工程生成po.mapper接口.mapper.xml 一.新建一个maven工程 请查看我的另一篇博客:<使用idea创建一个maven工程> 二.引入所需依赖 需要my ... 
- FreeMarker之根据模板生成Java代码
		FreeMarker根据模板生成Java代码,光这句话,大家想必也知道它的应用了,比如流行的DRY原则,该原则的意思,可简单概述为"不要写重复的代码". 比如Java中三层架构,数 ... 
- CXF wsdl2java 生成java代码供客户端使用
		CXF wsdl2java 生成java代码供客户端使用 环境配置:1.下载apache-cxf-2.6.2在环境变量中配置CXF_HOME 值为E:\gavin\cxf\apache-cxf-3.0 ... 
- MyBatis逆向工程生成的Example类的方法总结
		很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:一.mapper接口中的方法解析mapper接口中的部分常用方法及功能如 ... 
- log4net保存到数据库系列三、代码中xml配置log4net
		园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ... 
- wsdl自动生成Java代码,根据wsdl生成Java代码
		wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ... 
随机推荐
- Windwos安装Redis
			下载地址:https://github.com/MicrosoftArchive/redis 进入后点击release,下方可看到下载地址,下载mis文件,双击即可安装 
- ThinkPHP6 上传图片代码demo
			本文展示了ThinkPHP6 上传图片代码demo, 代码亲测可用. HTML部分代码 <tr> <th class="font-size-sm" style=& ... 
- java后台框架面试必须会的东西
- 【Spring】AOP的代理默认是Jdk还是Cglib?
			菜瓜:你觉得AOP是啥 水稻:我觉得吧,AOP是对OOP的补充.通常情况下,OOP代码专注功能的实现,所谓面向切面编程,大多数时候是对某一类对象的方法或者功能进行增强或者抽象 菜瓜:我看你这个理解就挺 ... 
- Redis持久化机制,优缺点,如何选择合适方式
			一.什么是Redis持久化? 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失. 二.Redis 的持久化机制是什么?各自的优缺点? Redis 提供两种持久化机制 RDB(默认) 和 ... 
- IntelliJ IDEA快速实现Docker镜像部署
			一.Docker开启远程访问 [root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service #修改 ... 
- 如何在Mac中配置Python虚拟环境,踩了好多坑
			如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtua ... 
- 大场前端工程师常使用CSS3特性做跨域也是牛逼前端的开始之路
			通过 CSS3 的 content 获取内容,很有意思的一个思路,实际场景中有可能用的到: CSST (CSS Text Transformation) 利用js动态创建一个link插入到文档中, 请 ... 
- (一)ELK 部署
			官网地址:https://www.elastic.co/cn/ ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch ... 
- P1220 关路灯——区间dp
			P1220 关路灯 题目描述 某一村庄在一条路线上安装了 \(n\) 盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一 ... 
