mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

这篇我们学习mybatis Generator的使用,Generator是Mybatis的一个代码生成器,它可以根据数据库表生成类、映射文件Mapper、数据操作的接口。并且Generator可以自动为每个表生成简单得CRUD(插入,查询,更新,删除)的实现代码,这是非常强大和方便的。但是如果有别的业务许需求,还是得自己写SQL,教程利用maven的方式来逆向生成代码。

Maven是什么?

当你利用搜索引擎搜索Maven会出来很多名词: 对象模型、标准集合、依赖管理系统这是啥啊?差不多得你会用了Maven才会理解这些名称吧,我找到了一个博主的博客

blog.csdn.net/qq_2 7376871/article/details/51612742 他做了不错的总结,Maven可以干什么:

1 . 帮你下载jar包

maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你铺天盖地的到处搜索你需要的jar包了 。maven都会通过:项目名-项目模块-项目版本来maven在互联网上的代码库中下载相应jar包。寻找jar的地址:http://search.maven.org

所以这就是maven的功能之一,帮你下载jar包

2 . 寻找依赖,帮你下载依赖

寻找jar包是第一基本功能,寻找依赖在这个是在这个基础上的功能。

在maven的代码库中,每一个jar包也有自己的 pom.xml文件,而这个文件里面也会有<dependency>配置,什么依赖范围我就不细说了,我想表达的就是,只要你配置的jar包所依赖的其他jar包都会被maven自动下载下来。

例如:你配置了

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.6</version> </dependency>

你需要maven帮你下载spring-core-3.6.jar包 ,而这个jar包里面需要用到commons-logging.jar这个包, 这叫就依赖,spring-core-3.6.jar依赖于commons-logging.jar。 这就是maven第二个作用,帮你下载依赖包。

3 . 热部署,热编译

意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。

搭建

1. 创建Maven工程

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

2. 设置GroupId

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

3. 控制台打印:build SUCCESS 创建成功

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

4. 自己创建resource目录

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

注:通过右键->Mark directory As来设置文件为源码目录或者资源目录(即更改文件夹得颜色)

5. 配置pom.xml

<?xml version=\”1.0\” encoding=\”UTF-8\”?><project xmlns=\”http://maven.apache.org/POM/4.0.0\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xsi:schemaLocation=\”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\”> <modelVersion>4.0.0</modelVersion> <groupId>com.generator</groupId> <artifactId>generator</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <build> <finalName>mybatis_generator</finalName> <plugins> <!–mybatis反向生成代码的插件配置–> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.3</version> </plugin> </plugins> </build></project>

给出的pox.xml是用来配置依赖和插件的配置文件,记住上方<plugin>标签中配置了mybatis generator的插件,IDE会自动帮我们下载。

6. 创建存放pojo、mapper等所在包

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

注意:上方Mappers、dao、pojo包是空的

7. 配置generatorConfig.xml

在src/main/resource目录下创建generatorConfig.xml配置文件,这个文件用来做mapper、pojo生成位置、数据库相关等配置,具体看代码注释。

generatorConfig.xml

<?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:mysql-jarmysql-connector-java-5.1.35.jar\” /> <context id=\”mysql\” targetRuntime=\”MyBatis3\” defaultModelType=\”flat\”> <!– 为了防止生成的代码中有很多注释,比较难看,加入下面的配置控制 –> <commentGenerator> <property name=\”suppressAllComments\” value=\”true\” /> <property name=\”suppressDate\” value=\”true\”/> </commentGenerator> <!– 必须要有的,使用这个配置链接数据库,url、密码等 –> <jdbcConnection driverClass=\”com.mysql.jdbc.Driver\” connectionURL=\”jdbc:mysql://localhost:3306/mybatis\” userId=\”root\” password=\”rootadmin\”> <!– 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 –> <property name=\”useUnicode\” value=\”true\”/> <property name=\”characterEncoding\” value=\”UTF-8\”/> </jdbcConnection> <javaModelGenerator targetpackage=\”com.generator.pojo\” targetProject=\”D:文档项目Generatorsrcmainjava\”> <property name=\”constructorBased\” value=\”false\”/> <!– 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false –> <property name=\”enableSubPackages\” value=\”true\” /> <!– for MyBatis3 / MyBatis3Simple 是否创建一个不可变的类,如果为true, 那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类 –> <property name=\”immutable\” value=\”false\”/> <!– 设置是否在getter方法中,对String类型字段调用trim()方法 –> <property name=\”trimStrings\” value=\”true\”/> </javaModelGenerator> <!– 生成SQL map的XML文件生成器, 注意,在Mybatis3之后,我们可以使用mapper.xml文件 Mapper接口(或者不用mapper接口), 或者只使用Mapper接口 Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置 targetPackage/targetProject:同javaModelGenerator –> <sqlMapGenerator targetPackage=\”Mappers\” targetProject=\”D:文档项目Generatorsrcmainresources\”> <!– 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false –> <property name=\”enableSubPackages\” value=\”true\”/> </sqlMapGenerator> <!– dao包名和位置 –> <javaClientGenerator type=\”XMLMAPPER\” targetPackage=\”com.generator.dao\” targetProject=\”D:文档项目Generatorsrcmainjava\”> <!– 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false –> <property name=\”enableSubPackages\” value=\”true\”/> </javaClientGenerator> <!– 表配置 –> <table tableName=\”user\” domainObjectName=\”User\” > <!– 参考 javaModelGenerator 的 constructorBased属性–> <property name=\”constructorBased\” value=\”false\”/> <!– 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; –> <property name=\”ignoreQualifiersAtRuntime\” value=\”false\”/> <!– 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 –> <property name=\”modelOnly\” value=\”false\”/> <!– 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate –> <property name=\”useActualColumnNames\” value=\”true\”/> </table> </context></generatorConfiguration>

对于上面的配置文件都已经做了注释,简单提取出来可以总结为下方几条,只需要正确配置,便可以完成逆向工程的功能:

  • classPathEntry 配置数据库驱动包位置
  • commentGenerator下配置是否去掉注释
  • jdbcConnection数据库链接URL、用户名、密码
  • javaModelGenerator生成模型的包名和位置
  • sqlMapGenerator生成映射文件包名和位置
  • javaClientGenerator生成DAO的包名和位置
  • table要生成哪些表

当然上方generatorConfig.xml仅仅是简单配置,还有很多配置参数没有给出,有需要的可以去查看更详细的配置

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

8. 运行插件

9. 在右侧栏Maven Project->plugin->mybatis-generator

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

10. 双击mybatis-generator:generate 运行

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

11. 运行结果

控制台打印出:BUILD SUCCESS 证明成功

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

发现pojo、dao、Mappers包多出了自动生成的代码

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

12. 查看生成的代码

在com.generator.dao包生成了相关接口,和Mappers中的mapper相对应

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

在com.generator.user包中根据数据库表生成了对应的实体类

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

UserMapper.xml中生成了对user表进行增删改查的简单SQL

mybatis-generator根据数据库表生成类,mapper接口,xml文件(简述mybatis生成mapper接口对象的过程)

到这里我们关于mybati-generator的使用介绍的差不多了,非常基础,相信对刚刚学习这门技术的同学来说是不错的指导。

作者: 王久一(已获作者授权)原文:https://mp.weixin.qq.com/s/BteFC7yD6Mu_x1Yd-kfxHg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年7月27日 上午10:50
下一篇 2022年7月27日 上午10:52

相关推荐

  • 有科研项目的学校

    科研项目是学校发展的重要驱动力之一。一个有科研项目的学校,不仅可以提供高质量的教育,还可以为学生提供更多的实践机会和发展空间。本文将介绍一所拥有众多科研项目的学校——XX大学。 X…

    科研百科 2025年2月28日
    0
  • 网上有什么科研项目

    随着互联网的不断发展,网上科研项目已经成为了科学研究的一个重要平台。以下是一些目前正在进行中的网上科研项目: 1. 基因编辑技术的研究:基因编辑技术是一种能够通过修改基因序列来改变…

    科研百科 2025年3月15日
    1
  • 项目管理 软件

    项目管理软件 项目管理软件是一种用于计划, 组织, 跟踪和协调项目的工具。在现代商业环境中, 项目管理人员需要高效地管理多个项目, 并确保项目按时完成, 预算合理, 质量可靠。项目…

    科研百科 2024年8月16日
    51
  • 基础性科研项目结题报告

    基础性科研项目结题报告 随着科技的不断发展,基础性科研项目已经成为推动科技进步的重要力量。在这些项目中,科学家们致力于探索新的科学领域,发现新的自然现象,并提出新的理论模型。本文将…

    科研百科 2025年4月27日
    1
  • 一年一本的《中共党史党建研究年度报告》又和读者们见面了(党史党建研究课题)

    近日,由北京师范大学中共党史党建研究院组织编写,王炳林教授主编的《中共党史党建研究年度报告(2022)》在我社正式出版。《中共党史党建研究年度报告》每年出版一册,是了解年度中共党史…

    科研百科 2023年10月12日
    156
  • 一文扫盲(9):档案管理系统的功能模块和界面设计(档案馆系统功能管理流程图)

    本次带来第8期:档案管理系统,从系统定义、功能模块、界面构成和设计方向四个方面讲解,大千UI工场愿意持续和大家分享,欢迎关注、点赞、转发。 一、什么是档案管理系统 档案管理系统是一…

    科研百科 2024年4月25日
    164
  • 科研项目经费类别(科研项目经费分类管理制度)

    科研项目经费分类管理制度 随着科技的不断发展,科研项目越来越多,科研项目经费也越来越大。如何合理管理科研项目经费,保证科研项目的顺利进行,已成为学术界和政府部门共同关注的问题。本文…

    科研百科 2024年4月6日
    143
  • 兰州局集团公司合同管理办法

    兰州局集团公司合同管理办法 为加强兰州局集团公司合同管理,规范合同签订和履行行为,提高企业管理水平,根据《中华人民共和国合同法》和其他相关法律、法规的规定,兰州局集团公司制定了《兰…

    科研百科 2024年10月13日
    10
  • 手机办公软件要多少钱

    手机办公软件要多少钱 随着科技的不断发展,手机办公软件已经成为了人们日常生活中不可或缺的一部分。手机办公软件不仅可以让人们随时随地进行文字处理和数据输入,还能够提高工作效率,减轻工…

    科研百科 2024年8月28日
    46
  • 项目管理系统中标

    项目管理系统中标:提升工作效率和质量 随着数字化时代的到来,项目管理系统在项目管理中的重要性越来越凸显。今天,我们很高兴地宣布,我们的项目管理系统成功中标。这次中标是对我们系统质量…

    科研百科 2024年12月15日
    1