如需转载,请根据 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可,附上本文作者及链接。
本文作者: Alice
作者昵称: 沉。
本文链接: http://example.com/2020/11/17/SpringBoot%E6%95%B4%E5%90%88%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%8AMybatis/
十、SpringBoot整合数据库
10.1、Springboot整合Druid
配置数据源
1、添加上 Druid 数据源依赖。
1 | <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> |
2、切换数据源;之前已经说过 Spring Boot 2.0 以上默认使用 com.zaxxer.hikari.HikariDataSource 数据源,但可以 通过 spring.datasource.type 指定数据源。
1 | spring: |
3、数据源切换之后,在测试类中注入 DataSource,然后获取到它,输出一看便知是否成功切换;
4、切换成功后,就可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等设置项;可以查看源码
1 |
|
5、导入Log4j 的依赖
1 | <!-- https://mvnrepository.com/artifact/log4j/log4j --> |
6、现在需要程序员自己为 DruidDataSource 绑定全局配置文件中的参数,再添加到容器中,而不再使用 Spring Boot 的自动生成了;我们需要 自己添加 DruidDataSource 组件到容器中,并绑定属性;
1 |
|
7、去测试类中测试一下;看是否成功!
1 |
|
配置Druid数据源监控
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。
所以第一步需要设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;
1 | package com.chen.config; |
配置完毕后,我们可以选择访问 :http://localhost:8080/druid/login.html
关于Druid的登录页面访问一直404的问题,配置pom.xml的文件添加以下依赖,注意log4j的版本,yml配置文件的缩进
1 | <dependency> |
配置 Druid web 监控 filter 过滤器
1 | //配置 Druid 监控 之 web 监控的 filter |
10.2、Springboot整合Mybatis
导入包
1
2
3
4
5<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
配置数据库连接信息(不变)
1
2
3
4
5
6
7
8spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 整合Mybatis
mybatis.type-aliases-package=com.chen.pojo
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml测试数据库是否连接成功!
1
2
3
4
5
6
7
void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());
System.out.println(dataSource.getConnection());
}
创建实体类,导入 Lombok
1
2
3
4
5
6
7
8
9
public class User {
private int id;
private String name;
private String pwd;
}创建mapper目录以及对应的 Mapper 接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//这个注解表示了这是一个Mybatis的Mapper类
public interface UserMapper {
List<User> queryUserList();
User queryUserById(int id);
int addUser(User user);
int updateUser(User user);
int deleteUser(int id);
}编写mapper.xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<mapper namespace="com.chen.mapper.UserMapper">
<select id="queryUserList" resultType="User">
select * from user;
</select>
<select id="queryUserById" parameterType="int" resultType="com.chen.pojo.User">
select * from mybatis.user where id = #{id}
</select>
<insert id="addUser" parameterType="com.chen.pojo.User">
insert into mybatis.user(id, name, pwd) values (#{id},#{name},#{pwd});
</insert>
<update id="updateUser" parameterType="com.chen.pojo.User">
update mybatis.user set name = #{name},pwd=#{pwd} where id=#{id} ;
</update>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id};
</delete>
</mapper>
maven配置资源过滤问题
1
2
3
4
5
6
7
8
9<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>编写controller测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42package com.chen.controller;
import com.chen.mapper.UserMapper;
import com.chen.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
public class UserController {
private UserMapper userMapper;
public List<User> queryUserList(){
List<User> userList = userMapper.queryUserList();
for (User user : userList) {
System.out.println(user);
}
return userList;
}
public String addUser(){
userMapper.addUser(new User(7,"阿毛","123456"));
return "ok";
}
public String updateUser(){
userMapper.updateUser(new User(7,"阿毛","963852"));
return "ok";
}
public String deleteUser(){
userMapper.deleteUser(7);
return "ok";
}
}
-------------本文结束感谢您的阅读-------------
本文链接: http://example.com/2020/11/17/SpringBoot%E6%95%B4%E5%90%88%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%8AMybatis/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!