使用MyBatis快速生成代码
使用MyBatis根据数据库快速生成代码的几种方法
- 一、使用MyBatis插件和EasyCdoe插件
- 1. 安装插件
- 2. IDEA里配置MySQL
- 3.根据数据库表生成文件
- 二、mybatis-generator快速生成代码
- 1. 配置generatorConfig.xml
- 2. pom.xml中配置mybatis-generator
- 3. 输入命令生成文件
- 三、使用工具项目生成代码
- 介绍
- 1. 下载工具项目
- 2. IDEA打开项目,修改配置文件
- 3. 运行并生成文件
- 4. 关于mybatis-generator-core中添加lombok
一、使用MyBatis插件和EasyCdoe插件
1. 安装插件
打开IDEA > settings > Plugins > Marketplace
安装Free MyBatis Plugin 和 Easy Code 两个插件
2. IDEA里配置MySQL
2.1 选择DataSource >MySQL
2.2 连接到MySQL数据
3.根据数据库表生成文件
3.1 连接MySQL成功界面如下。
选中需要生成文件的表,右击EasyCode > Generate Code
3.2 选择package和path,会将生成的文件放在你选择的路径下,需要什么类型的文件在template中选中,然后开始生成。
3.3 生成成功
二、mybatis-generator快速生成代码
将mybatis-generator配置到项目里,将文件直接生成到指定的目录。
1. 配置generatorConfig.xml
在项目src/main/resources 下新建generatorConfig.xml,具体配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- mysql-connector-java 版本需要与pom中引得版本一致 --><classPathEntry location="C:\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" /><context id="DB2Tables" targetRuntime="MyBatis3"><!-- 不加注释,因为默认注释是英文的 --><commentGenerator><property name="addRemarkComments" value="true"/><property name="suppressDate" value="true"/></commentGenerator><!-- 数据库连接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/sqmall?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC"userId="root"password="root"></jdbcConnection><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetPackage 文件生成在指定包下,targetProject 路径--><javaModelGenerator targetPackage="com.seven.mall.entity" targetProject="src/main/java"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"><property name="enableSubPackages" value="true" /></sqlMapGenerator><javaClientGenerator type="XMLMAPPER" targetPackage="com.seven.mall.dao" targetProject="src/main/java"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- domainObjectName 即生成后entity的名字 --><table tableName = "mall_category" domainObjectName="Category" /><table tableName = "mall_order" domainObjectName="Order" /></context>
</generatorConfiguration>
2. pom.xml中配置mybatis-generator
<!-- dependency和plugin中jar的版本根据自己需求选择,但同一个jar版本要保持一致 -->
<!-- 配置在dependencies中 -->
<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version>
</dependency><!-- 配置在plugins中 -->
<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><overwrite>true</overwrite> <!-- 重复生成时覆盖掉上次生成的文件 --></configuration>
</plugin>
3. 输入命令生成文件
在IDEA Terminal 或者打开命令行切换至项目路径
输入命令 mvn mybatis-generator:generate 回车即可
4. 成功生成
三、使用工具项目生成代码
介绍
其实第三种方法和第二种是一样的都是使用mybatis-generator生成。
第二种方法需要在自己的项目中配置一些东西
第三种方法是将这些配置,jar之类的东西拿出来做成一个项目,当作工具来用,使用时只需要修改表名和生成的package路径即可。
1. 下载工具项目
https://wwa.lanzoui.com/iG2Ent9yv5i
这个项目和第二种方法生成出来的java文件基本是一模一样的。
但是我在mybatis-generator-core-1.3.2.jar\org\mybatis\generator\plugins\里加了一个名称: LombokPlugin.class。会给生成的entity加上注解,这样就不需要写getter、setter和toString方法了.
当然了,如果不使用lombok,那么可以删掉这个class或者删除生成后的注解。
2. IDEA打开项目,修改配置文件
2.1 修改文件生成的位置
2.2 指定数据库表
3. 运行并生成文件
3.1 运行GeneratorSqlmap的main方法
3.2 生成成功
大功告成
4. 关于mybatis-generator-core中添加lombok
- 取下面的代码,编译为class文件:LombokPlugin.class
- 用解压软件打开mybatis-generator-core-1.3.2.jar
- 把编译好的class文件放到org\mybatis\generator\plugins\下即可
感兴趣的小伙伴可以自己去试一下
代码如下:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//package org.mybatis.generator.plugins;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.Plugin.ModelClassType;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;public class LombokPlugin extends PluginAdapter {public LombokPlugin() {}public boolean validate(List<String> list) {return true;}public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {topLevelClass.addImportedType("lombok.Data");topLevelClass.addImportedType("lombok.Builder");topLevelClass.addImportedType("lombok.NoArgsConstructor");topLevelClass.addImportedType("lombok.AllArgsConstructor");topLevelClass.addAnnotation("@Data");topLevelClass.addJavaDocLine("/**");topLevelClass.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));topLevelClass.addJavaDocLine("*/");return true;}public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {interfaze.addJavaDocLine("/**");interfaze.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));interfaze.addJavaDocLine("*/");return true;}public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {return false;}public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {return false;}private String date2Str(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");return sdf.format(date);}
}
使用MyBatis快速生成代码相关推荐
- Springboot整合mybatis plus生成代码
一.Springboot整合mybatis plus生成代码 1.介绍 1.1.前言 从零开始搭建一个项目骨架,最好选择合适熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springbo ...
- 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码
最近在系统的学习SpringBoot框架,并且要用该框架做个项目--网上也大大小小看了很多教程,感觉很多写文章的人都不太负责任,只知道搬运,大概都没有实际操作过,问题也是有很多,所以自己写一篇文章记录 ...
- 【MyBatis】MyBatis自动生成代码之查询爬坑记
前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...
- T4模板:MVC中用T4模板快速生成代码
T4模板快速生成代码: 以快速生Dal文件为例,下面为T4模板文件的内容 <#@ template debug="false" hostspecific="true ...
- IOS开发基础之使用XCode12快速生成代码段
IOS开发基础之使用XCode创建代码片段 这里我们选择的是XCode版本是12.3 版本,高版本 XCode12.3 是2020年12月份发布的最新的版本 务必学会使用快速生成代码,可以节约开发时间 ...
- 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
From: http://blog.itfsw.com/2017/05/23/jiejue-biao-ziduan-shiyong-guanjianzi-daozhi-mybatis-generato ...
- xcode 快速生成代码块
在xcode编写代码的时候,有很多都是类型相同的代码,如getter setter方法,如果对象的成员变量较多时,重复写getter setter方法就会很繁琐.但是xcode为我们提供了快速生成代码 ...
- Mybatis自动生成代码插件generator
Mybatis自动生成代码插件generator 1.pom maven依赖 <dependencies><dependency><groupId>org.myba ...
- 如何让 Mybatis 自动生成代码,提高开发效率
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在使用 mybatis 过程中, 当手写 JavaBean ...
- 如何让 Mybatis 自动生成代码
在使用 mybatis 过程中, 当手写 JavaBean 和XML 写的越来越多的时候, 就越来越同意出错.这种重复性的工作, 我们当然不希望做那么多. 还好, mybatis 为我们提供了强大的代 ...
最新文章
- 智能产品AI服务智商的权重研究|未来研究
- OutputFormat接口实现类
- golang 使用 http socks 代理
- java打jar包,引用其他.jar文件
- Influxdb修改数据保留策略
- 经典算法刷题笔记pdf
- python3扫盲系列-(3)
- c 多文件全局变量_C语言开发单片机为什么大多数都采用全局变量的形式?
- harbor安装_Harbor简单安装部署,镜像仓库存储使用阿里云OSS
- lumia 1520Android刷机包,诺言基亚Lumia 1520官方体系破开格提升固件释出产
- 软件工程工具图(软件开发过程中可能用到的工具图)
- 实现计算机系统的资源共享,实现多操作系统计算机的资源共享.pdf
- 服务器系统开机密码怎么关闭,windows server2012怎么去除开机密码
- 无刷马达绕线机相对于人工的优势
- Auto.js Pro安卓免ROOT引流脚本开发系列教程28网易公开课(6)-取随机话术
- 桂电计算机专业2021推免人数,2021届计算机科学与技术学院推免公示
- [vue-router] Named Route ‘Layout‘ has a default child route. When navigating to this named route (:t
- java中trim_JAVA中trim()函数使用方法
- linux让文件所有用户可以读,Linux 下用户(andy)创建的文件可让特定用户(alice)修改...
- (转载)物联网平台 分类CMP、DMP、AEP、BAP
热门文章
- turbo c是什么?
- mysql日期函数大全_MYSQL教程mysql日期时间函数大全 mysql函数大全
- 2003系统企业版镜像服务器,Windows Server 2003 R2/SP2简体中文企业版原版镜像
- 单片机作业1_为OLED制作汉字字库_第1部分
- java编程输入学生成绩 判断最高分_从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分_学小易找答案...
- Ubuntu命令技巧
- 十个最好的免费杀毒软件
- 局域网服务器共享文件夹设置,局域网服务器共享文件访问权限管理方法
- 如何用好nofollow?nofollow应用的案例分析
- linux系统移植步骤