什么是MyBatis
MyBatis是一款优秀的持久层框架,它支持自定义SQL、储存过程以及高级映射,MyBatis免除了乎所有的JDBC代码以及设置参数和获取结果集的工作, MyBatis 可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO (Plalin Old Java Objects,普通老式Java 对象)为数据库中的记录。
总接来说:MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。
入门-快速入门程序
需求:使用MyBatis查询所有用户数据
步骤;
1.准备工作(创建springboot工程、数据库表user、实体类User)
2.引入MyBatis的相关依赖,配置MyBatis
3.编写SQL语句(注解、XML)
package com.orange.mybatis01.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
private Integer gender;
private String phone;
public User() {
}
public User(Integer id, String name, Integer age, Integer gender, String phone) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
", phone='" + phone + '\'' +
'}';
}
}
spring.application.name=mybatis-01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=1234
配置SQL提示
默认在mybatis中编写SQL语句是不识别的。可以做如下配置:
JDBC介绍
JDBC: (Java DataBase Connectivity ),就是使用ava语言操作关系型数据库的一套API。
本质:
sun公司官方定义的一套操作所有关系型数据库的规范,即接口.
各个数据库厂商去实现这套接口,提供数据库驱动jar包
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
我们来看看原始JDBC的代码以及它的缺点
Mybatis
在mybatis中进行数据库操作时我们主要注意两点:
数据库连接池
数据库连接池
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏
优势:
资源重用
提升系统响应速度
避免数据库连接遗漏
如果没有数据库连接池,客户端想要执行一条SQL语句,是什么样子
首先会创建一个新的连接对象,然后执行SQL语句
执行完这句SQL语句以后,需要把这个连接对象关闭了,来释放资源,每一次都需要这样来执行,是很浪费资源的
有了数据库连接池,程序在启动的时候就会在容器当中初始化一定数量的连接对象
执行时
执行后
做到了连接的复用
标准接口
标准接口:DataSource
官方提供的数据库连接池接口,由第三方组织实现此接口
功能:获取连接
通过日志我们可以知道springboot默认用的就是Hikari追光者
如何切换数据库连接池
在依赖配置当中添加一个依赖即可
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
</dependencies>
第二种
lombok工具
问题分析
我们发现对于实体类来说,代码比较臃肿与繁琐,虽然是快捷方式生成,但是也是体力活
而lombok解决这个问题,加入一个注解Data我们就不用再写get set 等等方法了
介绍
Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toStri
ng等方法,并可以自动化生成日志变量,简化java开发、提高效率。
在使用lombok之前得先引入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
我们打开字节码看看,注解已经没有了,取而代之是方法
注意:Lombok会在编译时,自动生成对应的java代码。我们使用lombok时,还需要安装一个lombok的插件(idea自带)。