什么是MyBatis
MyBatis 是一款优秀的持久层框架,它通过 XML 或注解的方式将 Java 对象映射到数据库中的表。 简单来说,它主要做了两件事:
-
SQL 映射: 负责将 Java 方法调用和 SQL 语句绑定起来。 你可以在 XML 文件中定义 SQL 语句,并通过 MyBatis 的配置文件将这些 SQL 语句映射到 Java 接口的方法上。 也可以使用注解的方式直接在 Java 接口方法上编写 SQL 语句。
-
结果映射: 负责将数据库查询结果映射到 Java 对象。 你可以定义结果集和 Java 对象的映射关系,MyBatis 会根据这个映射关系自动将查询结果填充到 Java 对象中
MyBatis 的优点:
- 简单易学: 相比于 Hibernate 等 ORM 框架,MyBatis 更容易上手。
- 灵活性高: 可以编写复杂的 SQL 语句,能够满足各种业务需求。
- 性能好: 可以对 SQL 语句进行优化,提高数据库访问性能。
- 易于集成: 可以与 Spring 等框架进行集成。
- 可控性强: 开发者可以完全掌控 SQL 语句,更加了解数据库的执行情况。
MyBatis 的缺点:
- 需要手动编写 SQL 语句: 对于简单的 CRUD 操作,也需要编写 SQL 语句。
- 学习成本较高: 需要学习 SQL 语句和 MyBatis 的配置。
- 维护成本较高: 当数据库表结构发生变化时,需要修改 XML 映射文件或注解。
使用 MyBatis 的基本步骤:
- 引入 MyBatis 依赖: 在 Maven 或 Gradle 中引入 MyBatis 的依赖。
- 编写 SQL 映射文件或注解: 定义 SQL 语句和 Java 方法的映射关系。
- 配置 MyBatis: 配置 MyBatis 的数据源,事务管理器等。
- 编写 Java 代码: 通过 SqlSession 对象执行 SQL 语句。
搭建springboot2.x
Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通
过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。
引入依赖
springboot
引入父依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
</parent>
sprinboot配置
application-dev.yml
#配置服务器
server:
port: 9099
#数据源配置
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/book_db?
useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPubli
cKeyRetrieval=true
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
#日志配置
logging:
level:
com.ffyc.springboot: debug
application.yml
spring:
profiles:
active: dev
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
实体类
构建测试环境
查询数据
常用方法
in 范围查询
like 模糊查询
likeRight 右侧通配符查询
likeLeft 左侧通配符查询
or() 或
and() 并且
eq 相等
mybatis分页
解决数据量过大,一页一页显示数据 LIMIT m, n
redis是什么
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代
理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、
Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过
Redis Cluster提供自动分区。 消峰
redis的存储类型
哈希表、列表、集合、有序集合,位图,hyperloglogs,字符串等数据类型