什么是MyBatis?
- MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。
持久层:指的是就是数据访问层(dao),是用来操作数据库的。
框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、可拓展。
配置
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234
数据库连接池
- 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
- 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
- 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
- 好处
-
- 资源重用
- 提升系统响应速度
- 避免数据库连接遗漏
连接池是在一开始就创建好了一些连接(Connection)对象存储起来。用户需要连接数据库时,不需要自己创建连接,而只需要从连接池中获取一个连接进行使用,使用完毕后再将连接对象归还给连接池;这样就可以起到资源重用,也节省了频繁创建连接销毁连接所花费的时间,从而提升了系统响应的速度
- 常见的数据库连接池
-
- C3P0
- DBCP
- Druid
- Hikari (springboot默认)
- Druid(德鲁伊)
-
- Druid连接池是阿里巴巴开源的数据库连接池项目
- 功能强大,性能优秀,是Java语言最好的数据库连接池之一
如果我们想把默认的数据库连接池切换为 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代码。
注解 | 作用 |
@Getter/@Setter | 为所有的属性提供get/set方法 |
@ToString | 会给类自动生成易阅读的 toString 方法 |
@EqualsAndHashCode | 根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法 |
@Data | 提供了更综合的生成代码功能(@Getter + @Setter + @ToString + @EqualsAndHashCode) |
@NoArgsConstructor | 为实体类生成无参的构造器方法 |
@AllArgsConstructor | 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。 |
@Slf4j | private static final Logger log = LoggerFactory.getLogger(LogExample.class); |
@Builder | 自动生成一个Builder类,以便我们可以轻松地构建对象实例 |
注意: Lombok会在编译时,自动生成对应的java代码。我们使用lombok时,还需要安装一个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 方法等等。这样我们就免去了臃肿的代码。