Spring Boot数据库连接
spring boot的数据库连接
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
加入依赖
数据源配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
password: root
username: root
url: jdbc:mysql://localhost:3306/web?serverTimezone=UTC
这种方式是使用spring自带的数据源,hikari
已经在容器中创建好DataSource了,可以直接使用
使用Druid
Druid加入了数据监控功能
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
导入依赖
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
password: root
username: root
url: jdbc:mysql://localhost:3306/web?serverTimezone=UTC
dbType: mysql # 指定数据库类型 mysql
initialSize: 5 # 启动初始化连接数量
minIdle: 5 # 最小空闲连接
maxActive: 20 # 最大连接数量(包含使用中的和空闲的)
maxWait: 60000 # 最大连接等待时间 ,超出时间报错
# 这个type是指定数据源的,非常重要
type: com.alibaba.druid.pool.DruidDataSource
yaml里面的配置druid的配置
@Configuration
public class DruidConfig {
// 注册bean
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource(){
return new DruidDataSource();
}
// 注册后台监控界面
@Bean
public ServletRegistrationBean servletRegistrationBean(){
// 绑定后台监控界面的路径 为localhost/druid
ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
Map<String,String> map=new HashMap<>();
// 设置后台界面的用户名
map.put("loginUsername","admin");
//设置后台界面密码
map.put("loginPassword","123456");
// 设置那些ip允许访问," " 为所有
map.put("allow","");
// 不允许该ip访问
map.put("deny","33.32.43.123");
bean.setInitParameters(map);
return bean;
}
}
再新建一个Config就使用druid了
整合mybatis
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
导入依赖
编写Mapper
@Mapper
@Repository
public interface AccessMapper {
public List<Access> findAccessByUserId(@Param("userId") int userId);
}
@Mapper是告诉mybatis这是一个mapper
@Repository是告诉spring进行注入
@Mapper还可以在配置中使用扫描进行替换,这是告诉mybatis的第二种方式:@MapperScan
编写mapper.xml
在项目目录下,建立mybatis文件夹,建立mapper,建立mapper.xml文件,这样就可以被mybatis识别
这个是可以配置的,在MybatisProperties下
private String[] mapperLocations;
有这一项选择
所以我们要在配置文件中配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lucas.springbootlearn.dao.AccessMapper">
<resultMap id="accessMap" type="com.lucas.springbootlearn.pojo.Access">
<id column="access.id" property="id"/>
<result column="accessName" property="accessName"/>
</resultMap>
<select id="findAccessByUserId" resultMap="accessMap" parameterType="int">
select * from access,priority where access.id = priority.accessId and priority.id = #{userId}
</select>
</mapper>
编写mapper
yaml配置
mybatis:
type-aliases-package: com.lucas.springbootlearn.pojo
mapper-locations: classpath:mappers/*.xml
进行配置