若采用mybatis框架,数据库新建表,手动编写的话,需要编写大量的实体类、mapper文件、mapper.xml文件,都是一些重复且有规律的工作。

我们可以引用插件,然后做配置,自动生成这些文件,提供工作效率。

本博客包含的内容:

①自动生成插件的引入

②定义配置文件

③运行插件,生成代码

1.引入插件

在项目的pom文件中引入generator插件

            <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><!-- 配置文件存放路径 --><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!-- mapper --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>3.4.1</version></dependency></dependencies></plugin>

2.修改generatorConfig.xml文件

注:generatorConfig.xml 一定要放在pom中插件配置的路径下。

下面给出配置文件中的代码,代码中都有注释。主要注意的点有:

①jdbc连接 数据库的路径

②生成实体类存放的路劲

③生成mapper.xml存放的路劲

④生成mapper文件的存放路径

⑤修改表以及该表对应的实体类名称

<?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:数据库的JDBC驱动,换成你自己的驱动位置 可选 --><!--    <classPathEntry location="F://jdbc//mysql-connector-java-8.0.18.jar"/>--><!-- 一个数据库一个context --><context id="DB2Tables" targetRuntime="Mybatis3"><!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 --><property name="autoDelimitKeywords" value="true"/><!-- 生成的Java文件的编码 --><property name="javaFileEncoding" value="utf-8"/><!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`单引号; --><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><!-- 格式化java代码 --><property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/><!-- 格式化XML代码 --><property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/><plugin type="org.mybatis.generator.plugins.SerializablePlugin"/><plugin type="org.mybatis.generator.plugins.ToStringPlugin"/><!-- 配置 tk.mybatis 插件 --><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="com.glsx.plat.mybatis.mapper.CommonBaseMapper"/></plugin><!--配置生成注释信息,最多配置一个 --><commentGenerator><!-- 阻止生成注释包含时间戳 默认为false --><property name="suppressDate" value="true"/><!-- 注释是否添加数据库表的备注信息 默认为false --><property name="addRemarkComments" value="true"/></commentGenerator><!-- jdbc连接--><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://127.0.0.1:3307/test?serverTimeZone=Shanghai&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false"userId="root"password="root"><!--防止生成其他库同名表--><property name="nullCatalogMeansCurrent" value="true"/></jdbcConnection><!-- 类型转换 --><javaTypeResolver><!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 生成实体类地址 --><javaModelGenerator targetPackage="cn.com.glsx.admin.modules.entity" targetProject="src/main/java"><!-- 是否让schema作为包的后缀 --><property name="enableSubPackages" value="true"/><!-- 从数据库返回的值去掉前后空格 --><property name="trimStrings" value="true"/></javaModelGenerator><!-- 生成mapper.xml文件存放地址 --><sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"><property name="enableSubPackages" value="true"/></sqlMapGenerator><!-- 生成接口dao  type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 --><javaClientGenerator targetPackage="cn.com.glsx.admin.modules.mapper" targetProject="src/main/java" type="XMLMAPPER"><property name="enableSubPackages" value="false"/></javaClientGenerator><!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 enableSelectByPrimaryKey相应的配置表示是否生成相应的接口 --><table tableName="d_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/><table tableName="d_student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/></context>
</generatorConfiguration>

3.运行插件,生成代码

双击插件,运行后,在控制台中能看到BUILD SUCCESS,说明运行成功。


若在项目中没有,鼠标右击项目,则重新刷新整个项目或者重新加载项目,就可以在配置的路径下看到生成的文件。

若觉得博文对你有帮助,请【一键三连】,感谢你的支持鼓励。

最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

mybatis根据表逆向自动化生成代码(自动生成实体类、mapper文件、mapper.xml文件)相关推荐

  1. java实体类没有映射文件_MyBatis自动生成实体类、DAO和XML映射文件,并去掉实体类中的getter和setter方法...

    今天花了3个多小时搞定了这个事情,写个Blog记录一下,先看一下最终生成的实体类吧. packagecom.mybatis.pojo;importlombok.AllArgsConstructor;i ...

  2. eladmin代码自动生成_高效代码自动化生成

    最效率的代码自动化 前言 今天我们来看一下springboot中使用mybatis来自动生成代码,以前做ssh框架的时候实体和映射经常自己新建,浪费大量的时间,不过hibernate,到现在还是那么的 ...

  3. Mybatis最入门---代码自动生成(generatorConfig.xml配置)

    [一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...

  4. Spring Boot (七)MyBatis代码自动生成和辅助插件

    一.简介 1.1 MyBatis Generator介绍 MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper.dao.entity 的框架 ...

  5. eladmin代码自动生成_如何让 Mybatis 自动生成代码

    1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 &l ...

  6. eladmin代码自动生成_如何让Mybatis自动生成代码

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:阿进的写字台 cnblogs.com/homejim/p/9782403.html ...

  7. java自定义表单_JSP实现用于自动生成表单标签html代码的自定义表单标签

    本文实例讲述了JSP实现用于自动生成表单标签HTML代码的自定义表单标签.分享给大家供大家参考.具体如下: 这个是自己写的一个简单的JSP表单标签,用于自动生成checkBox,select,radi ...

  8. Mybatis的批量插入数据库的两种方法及代码自动生成工具的使用方法

    文章目录 常规批量插入.(通过foreach,生成很长的SQL) ExecutorType.BATCH方式执行批量操作 在这里简单介绍一下,自动生成工具的使用方法 常规批量插入.(通过foreach, ...

  9. python自动化代码生成_python 自动生成C++代码 (代码生成器)

    Python代码自动生成方法(代码生成器)遇到这种事在工作遇到问题,你需要写很多c++基础数据库类,但这些类是一样的,只不过是添加,删除,修改并检查.如果你手动编写代码,它是费力而容易出错;它可以很容 ...

最新文章

  1. LINQ to SQL活学活用(1):这要打破旧观念
  2. vs调用堆栈窗口怎么弄出来_从零开始(1)栈帧、调用约定
  3. 再用Udp--聊天工具
  4. 除了 Python ,这些语言写的机器学习项目也很牛(二)
  5. 应用ADO.net得到表
  6. linux 蓝牙脚本,linux下蓝牙开发(bluez应用)
  7. Git忽略项目中的指定的文件
  8. 知新 | koa框架入门到熟练第二章
  9. C++ 关于复制、移动构造函数和移动、复制 赋值运算符的重载问题;
  10. 升级php7_PHP 5.6 已结束安全支持,你升级到 PHP 7 系列了吗?
  11. 关于html5音频如何应用及解决方法?
  12. LED流水灯部分代码
  13. cisco交换机配置方法
  14. 迁移学习系列--方法篇
  15. (附源码)小程序 酒店疫情系统 毕业设计 091931
  16. 计算机视觉与深度学习(8)
  17. 电脑开始菜单没有了关机选项,怎么办
  18. MySQL的主键,索引设置和添加
  19. Oracle设计题资料分析题
  20. Oracle 循环插入数据

热门文章

  1. 四元数左乘右乘_复数/四元数和转动/转动群
  2. 基于SSM框架的高校实验室管理系统PPT模板
  3. 用Python做童年回忆的游戏 贪吃蛇
  4. mysql开窗函数_魔幻的SQL开窗函数,为您打开进阶高手的一扇天窗
  5. linux drm 内存管理,Linux RK3399 DRM 框架及代码流程 · Younix’s Studio
  6. 1971旗舰cpu intel_Intel 酷睿i7 9700F搭配影驰GeForce RTX 2060大将
  7. All xxx functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  8. HALCON 20.11:深度学习笔记(5)---设置超参数
  9. Python+OpenCV:高动态范围(High Dynamic Range, HDR)
  10. mysql 大小写敏感设置_MySQL 中的大小写敏感设置