目录
- 一、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
是什么
案例
@Testpublic 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>