Mybatis
什么是Mybatis?
是一款优秀的 持久层 框架,用于简化JDBC的开发
A. 持久层即dao层,数据访问层,用来操作数据库
B. 框架 : 是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
优点
A. 数据库连接四要素(驱动、链接、用户名、密码),配置在了springboot默认的配置文件 application.properties中。
B. 查询结果的解析及封装,由mybatis自动完成映射封装,我们无需关注。
C. 在mybatis中使用了数据库连接池技术,从而避免了频繁的创建连接、销毁连接而带来的资源浪费。
数据库连接池
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
他允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个
释放空闲时间超过最大空闲时间的数据库连接 来避免 因为没有释放数据库连接 而引起的数据库连接遗漏
好处
资源重用
提升系统响应速度
避免数据库连接遗漏
数据库使用了数据库连接池后,就能达到Connection对象的复用,如
连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度。
@Mapper
在Spring Boot中,@Mapper注解用于标识一个接口或抽象类是MyBatis的Mapper接口。Mapper接口是MyBatis框架中用于定义数据库操作的接口,它声明了一系列的方法,每个方法对应一条SQL语句或存储过程。
使用@Mapper注解将该接口标记为一个Mapper接口后,MyBatis会为该接口自动生成相应的实现类,以供应用程序调用。
通过@Mapper注解,在Spring Boot中可以方便地将Mapper接口注入到其他需要使用数据库操作的地方,比如Service层或Controller层。在使用@Autowired或@Resource注解进行依赖注入时,Spring Boot会自动为Mapper接口生成代理对象,并将其注入到对应的地方。
需要注意的是,为了使@Mapper注解起作用,你需要确保已经在Spring Boot项目中正确配置了MyBatis相关的依赖和配置文件。
国产数据库连接池—德鲁伊(Druid)
想把默认的数据库连接池切换为Druid数据库连接,只需两步:
(1)在pom.xml文件中引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
(2) 在application.properties中引入数据库连接配置 (可选,也可以使用 spring.datasource.xxxxx)
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.druid.username=root
spring.datasource.druid.password=1234
lombok
Lombok是一个实用的java工具包,可以通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码。
注意:
Lombok会在编译时,自动生成对应的java代码。使用lombok时,还需要安装一个lombok的插件
//@Builder的用法
@Data
@Builder
public class User {
private Long id;
private String username;
private String password;
private String email;
}
通过@Builder注解为User类生成了一个内部静态Builder类。通过该Builder类,你可以使用链式调用方式来设置User对象的属性
User user = User.builder()
.id(1L)
.username("john")
.password("password")
.email("john@example.com")
.build();
lombok的使用
(1)pom.xml 文件中引入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
(2)在定义的实体类上添加注解
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Short age;
private Short gender;
private String phone;
}
在实体类上添加了 @Data 注解,那么这个类在编译时期,就会生成GET、SET方法、toString方法、hashCode 、equals 方法等等。