Spring Boot数据库连接

Scroll Down

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

进行配置