目录
- 一、Mybatis入门案例
- 介绍
- 整体步骤
- 创建SpringBoot项目
- pom依赖
- 准备测试数据
- 新建实体类
- 配置Mybatis数据库连接信息
- 新建接口类,编写SQL代码
- 单元测试
- 二、IDEA配置SQL提示
- 三、JDBC
- 是什么
- 案例
- JDBC和Mybatis对比
- 四、数据库连接池
- 介绍
- 如何实现一个数据库连接池
- 切换数据库连接池
- 五、lombok
- 介绍
- 依赖和插件
一、Mybatis入门案例
介绍
整体步骤
创建SpringBoot项目
pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.8</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zcy</groupId>
<artifactId>mybatis-quick-start</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-quick-start</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
准备测试数据
新建数据库mybatis:
create database mybatis charset utf8;
插入测试数据:
create table user
(
id int unsigned primary key auto_increment comment 'ID',
name varchar(100) comment '姓名',
age tinyint unsigned comment '年龄',
gender tinyint unsigned comment '性别, 1:男, 2:女',
phone varchar(11) comment '手机号'
) comment '用户表';
insert into user(id, name, age, gender, phone)
VALUES (null, '白眉鹰王', 55, '1', '18800000000');
insert into user(id, name, age, gender, phone)
VALUES (null, '金毛狮王', 45, '1', '18800000001');
insert into user(id, name, age, gender, phone)
VALUES (null, '青翼蝠王', 38, '1', '18800000002');
insert into user(id, name, age, gender, phone)
VALUES (null, '紫衫龙王', 42, '2', '18800000003');
insert into user(id, name, age, gender, phone)
VALUES (null, '光明左使', 37, '1', '18800000004');
insert into user(id, name, age, gender, phone)
VALUES (null, '光明右使', 48, '1', '18800000005');
新建实体类
- 实体类封装的就是user表中的每一条记录 所以字段要一一对应
配置Mybatis数据库连接信息
新建接口类,编写SQL代码
单元测试
执行结果:
二、IDEA配置SQL提示
在上面UserMapper里写的SQL语句,目前IDEA只是把他当成一个字符串,没有智能提示,需要进行以下配置:
这样配置完之后,一些关键字就会有提示,而且写错了还会报错.
但是发现IDEA仍然识别不到数据表.
这是因为IDEA和数据库没有建立连接,不能识别表信息,还需要配置一下
这里IDEA连接MySQL数据库可以参考:如何使用IDEA直接连接MySQL数据库
要精确到具体数据库:
这样就会自动提示,而且不会报错
三、JDBC
是什么
案例
@Test
public void testJdbc() throws Exception {
//1. 注册驱动 告诉JDBC要使用哪一个驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获取连接对象
String url = "jdbc:mysql://localhost:3306/mybatis";
String username = "root";
String password = "zcygst666";
Connection connection = DriverManager.getConnection(url, username, password);
//3. 获取执行SQL的对象Statement,执行SQL,返回结果
String sql = "select * from user";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
//4. 解析并封装结果数据
List<User> userList = new ArrayList<>();
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
short age = resultSet.getShort("age");
short gender = resultSet.getShort("gender");
String phone = resultSet.getString("phone");
User user = new User(id,name,age,gender,phone);
userList.add(user);
}
//5. 释放资源
statement.close();
connection.close();
System.out.println(userList);
}
JDBC和Mybatis对比
Mybatis用配置文件的方式解决硬编码问题
SpringBoot又会自动完成数据封装
如果用spring.datasource(数据源)的方式来配置数据库连接信息,那么SpringBoot底层就会自动采用数据库连接池技术来统一分配并管理这些连接(Connection)
这和线程池很像,连接可以复用
四、数据库连接池
介绍
如何实现一个数据库连接池
即实现DataSource接口,一般不需要自己手动去实现,直接用开源的就行
切换数据库连接池
比如想要切换到Druid数据库连接池:官方地址
只需要在pom文件里引入,然后重新加载即可
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
然后再执行SpringBoot单元测试,发现日志里的数据库连接池信息已经改变了
且配置文件可以有下面两种写法:
五、lombok
介绍
依赖和插件
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>