SpringBoot 开发实用篇
文章目录
- SpringBoot
- SpringBoot 开发实用篇
- 4 数据层解决方案
- 4.1 内置数据源
- 4.1.1 现有数据层解决方案
- 4.1.2 小结
4 数据层解决方案
4.1 内置数据源
4.1.1 现有数据层解决方案
Druid + MyBatis-Plus + MySQL
- 数据源:DruidDataSource
- 持久化技术:MyBatis-Plus / MyBatis
- 数据库:MySQL
在我们之前的工程中
这两个其实我们是没有配置druid 数据源的,难道它就没有用到数据源技术吗?
【答案当然是否定的】
【对于druid 的数据源配置格式】
两种
下面这种格式需要导入druid 的starter 坐标
【如果我没有指定这个,它的数据源是什么?】
【创建新模块】
创建一个新的模块
依赖都不勾
直接创建
一个全新的 SpringBoot 工程
手动添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
就是这些基本的
创建实体类
package com.dingjiaxiong.domain;
import lombok.Data;
/**
* ClassName: Book
* date: 2022/10/20 10:52
*
* @author DingJiaxiong
*/
@Data
public class Book {
private int id;
private String name;
private String type;
private String description;
}
数据层接口
package com.dingjiaxiong.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dingjiaxiong.domain.Book;
import org.apache.ibatis.annotations.Mapper;
/**
* ClassName: BookDao
* date: 2022/10/20 10:53
*
* @author DingJiaxiong
*/
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
配置文件
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: 200039
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: auto
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
编写测试类
package com.dingjiaxiong;
import com.dingjiaxiong.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot15SqlApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void test() {
bookDao.selectById(1);
}
}
测试结果
OK,没问题
看看druid 在哪儿
再下面就是数据库操作了
【两种配置druid 的方式运行出来没有区别】
现在我不想用druid 了
再运行测试
成功了,
仔细观察
我好像没用,但是还是用了【哈哈哈哈哈】
【为什么】
现在加载的druid 是SpringBoot 的自动配置功能,我们导入了starter 之后,它就有这功能了
现在直接把它注掉
再次运行
运行成功了,而且好像有个新的数据源
这就是我们啥也没配的情况下,SpringBoot 默认的数据源
【介绍一下】
SpringBoot提供了3种内嵌的数据源对象供开发者选择
- HikariCP【默认】【超快】
- Tomcat提供DataSource
- commons DBCP
对Hikari 做进一步的配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
hikari:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 200039
改成这样子,再测试一次
OK, 依然可以正常使用
url 不能拿下来
还有其他很多hikari数据源 专用的配置
回顾一下
4.1.2 小结
- SpringBoot内置3款数据源可供选择
- HikariCP(默认)
- Tomcat提供DataSource
- Commons DBCP