easy-mybatis
是一个对Mybatis
的增强框架(插件)。在Spring
集成Mybatis
的基础上,将项目开发中对数据库的常用操作统一化。使用本框架可以很便捷的对数据库进行操作,提高开发效率,减少机械行为。
Maven依赖引入
<!-- https://mvnrepository.com/artifact/top.zuoyu.mybatis/easy-mybatis-spring-boot-starter -->
<dependency>
<groupId>top.zuoyu.mybatis</groupId>
<artifactId>easy-mybatis-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
Gradle依赖引入
// https://mvnrepository.com/artifact/top.zuoyu.mybatis/easy-mybatis-spring-boot-starter
implementation 'top.zuoyu.mybatis:easy-mybatis-spring-boot-starter:1.0.0'
摒弃传统mybatis
的model
、xml
、dao
数据库操作模式,避繁就简,快速开发。
采用预编译SQL
,拒绝运行期间反射生成SQL
,性能更高效。
只是对Mybatis-Spring的增强插件,对已有工程不做任何修改,仍可使用原生框架的功能,仅仅是简化了开发阶段对数据库的操作。
对数据库的所有操作共用一个接口,降低使用门槛,轻松操作数据库。
使用JsonObject
为数据对象,提供一系列操作方法,方便从持久化对象组装为视图对象。
整个框架只提供了一个接口、一个注解、两个对象,仅仅一行配置便可完成对数据库进行常用操作。
在mybatis-spring-boot
环境下,使用该框架(插件),可以减少传统Mybatis
使用中对model
、xml
、dao
的机械式开发。
所有的数据库操作均使用MapperRepository
接口,通过注解@Magic("xxx")
标记接口的数据表归属,即可直接使用。
该框架(插件)不妨碍同时使用传统Mybatis
中model
、xml
、dao
的数据库开发方式。
这里以
MySQL
数据库为例,Oracle
数据库配置请参考配置说明
spring-boot-jdbc
数据库
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.0.0.1:3306/xxxx
username: xxxx
password: xxxx
关于springBoot
的配置,这里不多赘述,更多移步springBoot官网。
easy-mybatis
支持的表名(例子)
easy-mybatis:
table-names: teacher, student
这里的table-names
配置,表示需要easy-mybatis
框架支持的数据表名,多个表名使用逗号隔开。
即可使用easy-mybatis
框架操作teacher
和student
两个数据表,如果需要支持其他数据表,需要在此配置。
@SpringBootTest
class DemoApplicationTests {
// 表示该接口用来操作名称为'teacher'的数据表
@Magic("teacher")
private MapperRepository teacherRepository;
// 表示该接口用来操作名称为'student'的数据表
@Magic("student")
private MapperRepository studentRepository;
// 查询teacher表下所有数据
@Test
void teacherTest() {
teachertRepository.selectList().forEach(System.out::println);
}
// 查询student表下符合特定条件的数据
@Test
void studentTest() {
studentRepository.selectListByExample(
new JsonObject().put("birthday", "2009/12/12 12:12:12")
).forEach(System.out::println);
}
}
使用MapperRepository
接口对数据库进行操作,需要使用@Magic("表名称")
标记该接口的数据表归属。
在本例中,@Magic("teacher")
表示该MapperRepository
为"teacher"
数据表的操作接口,可以通过teacherRepository
调用一系列方法完成对"teacher"
数据表的操作。
1. 背景 实际开发中为了提供开发效率,快速开发 会选择使用代码生成器。可选的有: MyBatis官方提供的 MyBatis Generator IDEA 插件Easy Code:一键生成MyBatis代码 其他开源实现 使用 Easy Code:一键生成MyBatis代码 可参考我的另一篇文章。 本节讲 MyBatis Generator 2.知识 MyBatis Generator (MBG)
前言: MyBatis 文档中提供很多不错的解读,通过阅读文档发现文档真的是个不错的东西, 本文主要是对 MyBatis 配置文件 mybatis-config.xml 的 的解读,以及对配置文 件的优化。 废话就不多BB 了,咱们先来看看文档首先给我们的配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuratio
我正在逐个迭代字符串对象列表中的元素: 在这里,每次我调用list上的get()时,列表都会从其一端一直迭代到第i个元素——因此上面循环的复杂性是O(n^2)。 是a.)对于增强型for循环,与上面相同,还是b.)对于循环,将指针保持在最后一个指针所在的位置,因此下面循环的复杂性是O(n)? 如果上面的情况(b)——我想是这样的——在列表上使用迭代器有什么好处吗。这是简单的迭代--没有回头路 蒂亚
主要内容:Java11 增强String的API 的示例Java 11 为 String 引入了多项增强功能。 String.repeat(int) : 重复给定次数的字符串。返回连接的字符串。 String.isBlank() :检查字符串是否为空或只有空格。 String.strip() : 删除前导和尾随空格。 String.stripLeading() : 删除前导空格。 String.stripTrailing() : 删除尾随空格。 Str
我可以使用vuforia的增强现实并在应用商店和PlayStore上传吗?
ZGC 或 Z 垃圾收集器是在 Java 11 中引入的,作为一种低延迟垃圾收集机制。ZGC 确保垃圾收集暂停时间不依赖于堆大小。无论堆大小是 2MB 还是 2GB,它都不会超过 10 毫秒。 但是 ZGC 在将未使用的堆内存返回给操作系统方面存在限制,例如 G1 和 Shenandoah 等其他 HotSpot VM GC。以下是使用 Java 13 完成的增强功能: ZGC 默认将未提交的内存
我有一个手风琴,它在我的页面内工作得很好。当你点击标题时,隐藏的div会显示,当你再次点击它时,它会再次隐藏。我想通过增加一个功能来增强手风琴,使手风琴一次只显示一个项目。换句话说,如果我打开了一个项目,并单击另一个标题,则当前打开的项目将自动关闭。 这是HTML 这是我的jQuery代码 如您所见,我有一个main(div class=“cap”)后跟一个(div class=“capitalo
除了agent和环境之外,强化学习的要素还包括策略(Policy)、奖励(reward signal)、值函数(value function)、环境模型(model),下面对这几种要素进行说明: 策略(Policy) ,策略就是一个从当环境状态到行为的映射; 奖励(reward signal) ,奖励是agent执行一次行为获得的反馈,强化学习系统的目标是最大化累积的奖励,在不同状态下执行同一个行
在 Lightroom 中应用 增强细节 以在原始图像中显示清晰的细节和进行更好的颜色渲染,增强细节 由 Adobe Sensei 提供支持。 Lightroom 桌面版 2.2 中引入了 增强细节。该功能由 Adobe Sensei 提供支持,可以生成清晰的细节,改进色彩渲染,实现更准确的边缘再现以及减少伪影。增强细节 对于打印大型图像尤其有用,可更清晰地显示细微之处。此功能适用于通过带有 Ba
我有以下ElasticSearch DSL查询 我希望在与字段匹配时提高得分,也希望在字段匹配时降低得分。 我试过很多事情,比如: 或 但不能让它工作。我也尝试过将should和must等结合起来,但并没有走得太远--甚至不值得分享。有没有一种简单的方法可以做到这一点,而不需要重新对我所有的文档进行重新德行/重新打分?使用ES查询(而不是ES-DSL)的答案也会很有帮助。