当前位置: 首页 > news >正文

MyBatis逆向工程和MyBatisX插件的使用

文章目录

  • 1.ORM思维
  • 2.逆向工程
  • 3.MyBatisX插件的使用

1.ORM思维

ORM(Object-Relational Mapping,对象-关系映射)是一种将数据库和面向对象编程语言中的对象之间进行转换的技术。它将对象和关系数据库的概念进行映射,最后我们就可以通过方法调用进行数据库操作

ORM 框架通常有半自动和全自动两种方式。

  • 半自动 ORM 通常需要程序员手动编写 SQL 语句或者配置文件,将实体类和数据表进行映射,还需要手动将查询的结果集转换成实体对象。
  • 全自动 ORM 则是将实体类和数据表进行自动映射,使用 API 进行数据库操作时,ORM 框架会自动执行 SQL 语句并将查询结果转换成实体对象,程序员无需再手动编写 SQL 语句和转换代码。

半自动和全自动 ORM 框架的区别:

  1. 映射方式:半自动 ORM 框架需要程序员手动指定实体类和数据表之间的映射关系,通常使用 XML 文件或注解方式来指定;全自动 ORM 框架则可以自动进行实体类和数据表的映射,无需手动干预。
  2. 查询方式:半自动 ORM 框架通常需要程序员手动编写 SQL 语句并将查询结果集转换成实体对象;全自动 ORM 框架可以自动组装 SQL 语句、执行查询操作,并将查询结果转换成实体对象。
  3. 性能:由于半自动 ORM 框架需要手动编写 SQL 语句,因此程序员必须对 SQL 语句和数据库的底层知识有一定的了解,才能编写高效的 SQL 语句;而全自动 ORM 框架通过自动优化生成的 SQL 语句来提高性能,程序员无需进行优化。
  4. 学习成本:半自动 ORM 框架需要程序员手动编写 SQL 语句和映射配置,要求程序员具备较高的数据库和 SQL 知识;全自动 ORM 框架可以自动生成 SQL 语句和映射配置,程序员无需了解过多的数据库和 SQL 知识。

常见的半自动 ORM 框架包括 MyBatis 等;常见的全自动 ORM 框架包括 Hibernate、Spring Data JPA、MyBatis-Plus 等。

2.逆向工程

MyBatis 的逆向工程是一种自动化生成持久层代码和映射文件的工具,它可以根据数据库表结构和设置的参数生成对应的实体类、Mapper.xml 文件、Mapper 接口等代码文件,简化了开发者手动生成的过程。逆向工程使开发者可以快速地构建起 DAO 层,并快速上手进行业务开发。
MyBatis 的逆向工程有两种方式:通过 MyBatis Generator 插件实现和通过 Maven 插件实现。无论是哪种方式,逆向工程一般需要指定一些配置参数,例如数据库连接 URL、用户名、密码、要生成的表名、生成的文件路径等等。

3.MyBatisX插件的使用

MyBatisX 是一个 MyBatis 的代码生成插件,可以通过简单的配置和操作快速生成 MyBatis Mapper、pojo 类和 Mapper.xml 文件。接下来演示MyBatisX插件的使用

1.首先要下载MyBatisX,直接在IDEA插件市场里面下载即可
在这里插入图片描述
2.使用IDEA连接数据库
在这里插入图片描述
选择MySQL,进行填写
在这里插入图片描述
3.逆向工程
右键想要逆向工程的表名
在这里插入图片描述

在这里插入图片描述
按照下面进行选择即可,点击Finish
在这里插入图片描述
可以看到生成了User类,UserMapper以及对应的xml文件
在这里插入图片描述

http://www.lryc.cn/news/375879.html

相关文章:

  • 探索C嘎嘎的奇妙世界:第十四关---STL(string的模拟实现)
  • 【JavaScript脚本宇宙】玩转图像处理:从基础到高级,这些库你不能错过!
  • python+unity手势控制地球大小
  • CSS【实战】抽屉动画
  • 【Linux Vim的保姆级教程】
  • 力扣668.乘法表中第k小的数
  • css伪类和伪元素选择器
  • 第壹章第15节 C#和TS语言对比-泛型
  • 苹果电脑下载vite包错
  • 自动化测试git的使用
  • MyBatis系列四: 动态SQL
  • Jenkins构建 Maven项目(微服务)并自动发布
  • 简单易用的多功能图床Picsur
  • 数据库-查询语句习题
  • 进程间通信以及线程的同步互斥机制
  • 优思学院|做车企的质量工程师转行跳槽能干嘛?
  • ctfshow-web入门-命令执行(web53-web55)
  • 【INTEL(ALTERA)】make: nios2-swexample-create:未找到命令
  • 一周刷爆leetcode!(b站视频)
  • 1.xshell传不了文件输出0000如何解决.....2.k8s中metalLB文件内容
  • 01- ES6语法
  • STM32MP135裸机编程:配置RCC,修改主频到1GHz
  • 观察 jvm 运行时数据区内存大小(native memory tracking)
  • 【论文阅读】-- 时间空间化:用于深度分类器训练的可扩展且可靠的时间旅行可视化
  • Windows系统部署本地SQL_Server指引
  • Aptos Builder Jam 亚洲首站|议程公布,无限畅想 Aptos 生态未来
  • Vue3使用component动态展示组件
  • 嵌入式中间件_2.嵌入式中间件的分类
  • 论文精读——KAN
  • 全国产城市轨道交通运营公安AI高清视频监控系统