SpringBoot数据访问
SpringBoot整合JDBC
使用官方提供的spring-boot-starter-jdbc
启动器,默认配好了JdbcTemplate全套功能,该启动器依赖了spring-boot-starter
根启动器,以及HikarCP
数据库连接池,需要自行导入数据库驱动
常用配置项如下
属性名 | 描述 |
---|---|
spring.datasource.url |
数据库连接url |
spring.datasource.username |
数据库用户名 |
spring.datasource.password |
数据库密码 |
spring.datasource.driver-class-name |
数据库连接驱动全限定名称 |
spring.datasource.type |
数据库连接池全限定名称(该场景默认是HikarCP ) |
spring.jdbc.template.query-timeout |
JdbcTemplate查询超时时间,单位秒 |
编写如下代码进行数据库连接的测试
@SpringBootTest
class SpringbootApplicationTests {
@Autowired
JdbcTemplate jdbcTemplate; //注入JdbcTemplate工具类
@Test
void testJdbc() {
Long count = jdbcTemplate.queryForObject("select count(*) from students", Long.class);
System.out.println(count);
}
}
SpringBoot整合Druid
导入spring-boot-starter-jdbc
启动器后,再导入其他的数据库连接池,就会覆盖掉默认的HikarCP
数据库连接池,所以导入Druid之后加入容器即可
Druid属于第三方所以需要自己控制版本,Druid官方提供了druid-spring-boot-starter
启动器,该场景启动器依赖Druid,所以直接引入官方的启动器即可
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>x.x.x</version>
</dependency>
监控页面为
http://IP:端口/druid/
连接池配置项与之前的一样(连接池大小等),只不过是spring.datasource.druid.*
开头的,下面是常用监控页配置项,更加全面的配置项可从Druid官方查到
属性名 | 默认值 | 描述 |
---|---|---|
spring.datasource.druid.stat-view-servlet.enabled |
false | 是否开启监控页面 |
spring.datasource.druid.stat-view-servlet.login-username |
监控页面的登入用户名 | |
spring.datasource.druid.stat-view-servlet.login-password |
监控页面的登入密码 | |
spring.datasource.druid.web-stat-filter.enabled |
false | 是否开启URL监控 |
spring.datasource.druid.web-stat-filter.url-pattern |
/* |
监控的URL |
spring.datasource.druid.web-stat-filter.exclusions |
默认就不监控静态资源URL | 不监控的URL |
spring.datasource.druid.aop-patterns |
SpringBean监控(指定包名) | |
spring.datasource.druid.filters |
其他filter的 stat:sql监控 wall:sql防火墙 ... |
SpringBoot整合MyBatis
MyBatis属于第三方所以需要自己控制版本,MyBatis官方提供了mybatis-spring-boot-starter
启动器,该场景启动器依赖MyBatis、mybatis-spring
整合包、spring-boot-starter-jdbc
等,所以直接引入官方的启动器即可
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>x.x.x</version>
</dependency>
接口方式使用时,需要在映射接口上标注
@Mapper
注解将其加入到容器,或在SpringBoot入口类中添加上添加@MapperScan
注解指定MyBatis包扫描将其加入到容器
常用配置项如下
属性名 | 描述 |
---|---|
mybatis.config-location |
指定MyBatis全局配置文件位置,使用xml方式配置MyBatis |
mybatis.mapper-locations |
指定MyBatis的Mapper映射文件位置 |
mybatis.configuration.map-underscore-to-camel-case |
是否开启蛇形命名法到驼峰命名法映射 |
编写如下代码进行数据库连接的测试
@Mapper
interface StudentsMapper {
@Select("select count(*) from students")
Long selectCount();
}
@SpringBootTest
class SpringbootApplicationTests {
@Autowired
StudentsMapper studentsMapper; //注入studentsMapper映射接口
@Test
void testMyBatis() {
Long count = studentsMapper.selectCount();
System.out.println(count);
}
}
SpringBoot整合Redis
使用官方提供的spring-boot-starter-data-redis
启动器,默认配好了RedisTemplate全套功能,该启动器依赖了spring-boot-starter
根启动器,以及lettuce
客户端
常用配置项如下
对应的有
pool
连接池相关配置(连接池默认配好了),以及sentinel
和cluster
的相关配置
属性名 | 描述 |
---|---|
spring.redis.client-type |
redis客户端类型 |
spring.redis.url |
数据库连接url |
spring.redis.username |
redis连接用户名 |
spring.redis.password |
redis连接密码 |
spring.redis.timeout |
超时时间 |
编写如下代码进行数据库连接的测试
@SpringBootTest
class SpringbootApplicationTests {
@Autowired
StringRedisTemplate stringRedisTemplate; //注入StringRedisTemplate工具类
@Test
void testRedis() {
ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
stringStringValueOperations.set("hello", "world");
String hello = stringStringValueOperations.get("hello");
System.out.println(hello);
}
}
SpringBoot整合Jedis
导入spring-boot-starter-data-redis
启动器后,再导入其他的客户端,就会覆盖掉默认的lettuce
客户端,所以导入Jedis
之后,**再手动将spring.redis.client-type
配置项修改为jedis
**即可
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
Comments NOTHING