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的方式运行就可以了
mybatis逆向工程生成java代码和xml配置相关推荐
- mybatis 逆向工程生成的 Example 类的使用
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.逆向工程 逆向工程可以针对单表自动生成 mybatis 执行所需要的代码(mapper.java ...
- 如何使用模板Thymeleaf来自动生成java代码
文章目录 前言 如何使用模板Thymeleaf来自动生成java代码 01 Thymeleaf 是什么? 02 Thymeleaf与springBoot的集成即使用 03 如何使用模板Thymelea ...
- CXF wsdl2java 生成java代码供客户端使用
CXF wsdl2java 生成java代码供客户端使用 环境配置: 1.下载apache-cxf-2.6.2在环境变量中配置CXF_HOME 值为E:\gavin\cxf\apache-cxf-3. ...
- Protobuf生成Java代码(Maven)
1.说明 本文介绍Protobuf生成Java代码的方法, 配置对应的Maven插件, 把.proto文件生成Java代码. 2.插件配置 创建Maven工程grpc-compile, 修改pom.x ...
- java插件开发_编写一个IDEA插件之:自动生成Java代码
我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...
- mybatis-plus生成java代码
文章目录 前言 一.mybatis-plus生成java代码是什么 二.使用步骤 1.创建maven项目 2.导入项目依赖 3.创建代码生成器CodeGenerator.java 4.代码生成器Cod ...
- java获取jndi密码_用JAVA代码获取Weblogic配置的JNDI 数据源连接
第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行 JDK 1.6 命令 "java -j ...
- 【Android APT】注解处理器 ( 根据注解生成 Java 代码 )
文章目录 一.生成 Java 代码 二.实现 IButterKnife 接口 三.视图绑定主要操作 四.完整注解处理器代码 五.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 , ...
- Protobuf生成Java代码(命令行)
1.说明 本文介绍Protobuf生成Java代码的方法, 下载必须的Protobuf工具, 然后通过命令行, 把.proto文件生成Java代码. 2.准备Protobuf工具 2.1.获取prot ...
- Spring MVC之基于java config无xml配置的web应用构建
更多spring相关博文参考: spring.hhui.top 前一篇博文讲了SpringMVC+web.xml的方式创建web应用,用过SpringBoot的童鞋都知道,早就没有xml什么事情了,其 ...
最新文章
- ThreadLocalRandom 安全吗
- mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联
- qq空间说说服务器维护,如何解决QQ空间说说发表不了
- 域名是如何被墙的_如何快速搭建属于自己的个性网站?
- 电脑安装系统多少钱_电脑系统安装教学
- 函数计算搭建 Serverless Web 应用(一)- HTTP 触发器
- php io流 读取wav,记php中的io流---帮助理解
- Agile PLM EC Understand the BOM Publishing Process
- Java原生代码连接MySQL数据库
- asp.net 提取html div,asp.net – 将div固定在html中的某一点
- php制作成绩单,PHP学生成绩查询及分析系统制作
- 卸载mysql server_windows中彻底卸载mysql
- 我的世界服务器彩虹云,《我的世界》彩虹云跑酷地图存档
- Verilog语法概述(一)
- Cox比例风险模型与R实现
- whitening(白化)
- Keras多层感知器模型对IMDB进行情感分析
- spring-boot-redis-cache集成总结及源码分析
- 如何留住企业中层领导
- 制造业数字化转型内涵和过程
热门文章
- JZOJ 3055. 【NOIP2012模拟10.27】比赛
- 【并发】关于并发、超卖处理的思路
- 学习 WebService 第三步:一个简单的实例(SoapUI测试REST项目)
- Java字符编码转换过程说明
- 碰到一个非常郁闷的事
- IntelliJ IDEA使用技巧(三)——Debug 篇
- 拉格朗日插值与拉格朗日反演
- MySQL出现Waiting for table metadata lock的场景浅析
- 【Stanford Online】Engineering: Algorithms1 NO.4 The Master Method
- 关于hbase安装出现的问题