卓小洛的专栏

まけるのはきらいになった!

springboot2.0 druid数据源配置

1. 引入jdbc,db驱动以及druid的starter

这里以oracle为例

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc</artifactId>
    <version>11.2.0.4</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.9</version>
</dependency>

druid的starter配置可以参照:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

2. 配置db连接的yml

server:
  port: 50001
  servlet:
    context-path: /jdbc
spring:
  datasource:
    druid:
      driver-class-name: oracle.jdbc.OracleDriver
      url: jdbc:oracle:thin:@192.168.14.16:1521:orcl
      username: test
      password: test
      stat-view-servlet:
        url-pattern: /druid/*
        reset-enable: true
        login-username: druid
        login-password: druid
      web-stat-filter:
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"

3. 测试类

@RestController
public class HiController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @RequestMapping(value="/hi")
    public Integer hi() {
        String sql = "select count(0) from aaa";
        return jdbcTemplate.queryForObject(sql, Integer.class);

    }
}

启动应用,访问/hi:可以看到正常的输出结果
这里写图片描述

访问/druid:用户名/密码我们在第二步设置的是druid/druid
这里写图片描述

进入后可以查看druid的所有内容:
这里写图片描述

4. Transactional事务管理

springboot开启db事务非常简单,只需要在service类上或者方法上加上@Transactional 注解即可。

关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager
如果你添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例。
如果你添加的是 spring-boot-starter-data-jpa 依赖,框架会默认注入 JpaTransactionManager 实例。

@Transactional 的参数:

参 数 名 称 功 能 描 述
readOnly 该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。例如:@Transactional(readOnly=true)
rollbackFor 该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。例如:指定单一异常类:@Transactional(rollbackFor=RuntimeException.class)指定多个异常类:@Transactional(rollbackFor={RuntimeException.class, Exception.class})
rollbackForClassName 该属性用于设置需要进行回滚的异常类名称数组,当方法中抛出指定异常名称数组中的异常时,则进行事务回滚。例如:指定单一异常类名称@Transactional(rollbackForClassName=”RuntimeException”)指定多个异常类名称:@Transactional(rollbackForClassName={“RuntimeException”,”Exception”})
noRollbackFor 该属性用于设置不需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,不进行事务回滚。例如:指定单一异常类:@Transactional(noRollbackFor=RuntimeException.class)指定多个异常类:@Transactional(noRollbackFor={RuntimeException.class, Exception.class})
noRollbackForClassName 该属性用于设置不需要进行回滚的异常类名称数组,当方法中抛出指定异常名称数组中的异常时,不进行事务回滚。例如:指定单一异常类名称:@Transactional(noRollbackForClassName=”RuntimeException”)指定多个异常类名称:@Transactional(noRollbackForClassName={“RuntimeException”,”Exception”})
propagation 该属性用于设置事务的传播行为。例如:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
isolation 该属性用于设置底层数据库的事务隔离级别,事务隔离级别用于处理多事务并发的情况,通常使用数据库的默认隔离级别即可,基本不需要进行设置
timeout 该属性用于设置事务的超时秒数,默认值为-1表示永不超时
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ifrozen/article/details/79977147
文章标签: springboot2.0 druid
个人分类: springBoot
所属专栏: springboot2.0
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

springboot2.0 druid数据源配置

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭