springBoot整合JDBC(默认数据源Hikari)+整合druid数据源

**

整合JDBC(默认数据源Hikari)

**
1.创建一个springboot项目,请选择以下的依赖
在这里插入图片描述
2.项目创建成功,配置yml文件(不要忘记设置编码跟时区)

#配置用户名跟密码等需要属性
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver

3.在test中测试,查看数据库是否连接成功

@SpringBootTest
class SpringbootDataApplicationTests {
    @Autowired
    DataSource dataSource; //注入数据源
    @Test
    void contextLoads() throws SQLException {
        //查看默认数据源:class com.zaxxer.hikari.HikariDataSource:dpcp,c3po
        System.out.println(dataSource.getClass());
        //获得数据库连接
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();

    }

}

4.数据库连接成功,创建controller可以对数据库进行最基本的增删改查操作

@RestController
public class JDBCController {
    @Autowired
    JdbcTemplate jdbcTemplate;

    //查询数据库的所有信息
    //没有实体类,数据库中的东西,怎么获取?map
    @RequestMapping("/uesrList")
    public List<Map<String, Object>> uesrList() {
        String sql = "select *  from  tbuser";
        List<Map<String, Object>> list_map = jdbcTemplate.queryForList(sql);
        return list_map;
    }

    @RequestMapping("addUser")
    public String addUser() {
        String sql = "insert into mybatis.tbuser (name,pwd,teaId) values ('小明','234',1)";
        jdbcTemplate.update(sql);
        return "ok";
    }

    @RequestMapping("updateUser/{id}/{pwd}")
    public String updateUser(@PathVariable("id") int id, @PathVariable("pwd") String pwd) {
        String sql = "update mybatis.tbuser set pwd =? where  id= ?";
        Object[] object = new Object[2];
        object[0] = pwd;
        object[1] = id;
        jdbcTemplate.update(sql, object);
        return "ok";
    }
}

**

整合druid数据源(基于上一个测试的基础上整合)

**
1.加上druid跟log4j依赖包

       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

2.继续配置yml文件(一定注意格式问题:尤其是有无空格)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    #Spring Boot 默认是不注入这些属性值的,需要自己绑定
    #druid 数据源专有配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
    #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
    #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3.编写配置类

@Configuration
public class DruidConfig {
    //把yml的数据文件跟配置类进行绑定,这样我们就可以用yml中的配置了
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");//访问页面
        Map<String, String> initParameters = new HashMap<>();
        //initParameters put 的所有key 都是固定的人家写好的
        initParameters.put("loginUsername", "admin"); //loginUsername  键是固定的
        initParameters.put("loginPassword", "123");//loginPassword key  键是固定的
        //允许谁可以访问
        initParameters.put("allow", "");//默认允许所有
        bean.setInitParameters(initParameters);//设置初始化参数
        return bean;
    }
}

4.测试
在地址栏上访问,对数据进行增删改查,在登录http://localhost:8080/druid/即可查看监
在这里插入图片描述

Spring Boot中,整合数据连接池可以使用HikariCP作为默认的数据库连接池。HikariCP是一款非常强大、高效的连接池,被称为"史上最快连接池"。在Spring Boot 2.0之后,使用默认的数据库连接池就是HikariCP,不需要再添加额外的依赖。 要整合数据连接池,首先需要导入HikariCP的坐标。在`pom.xml`文件中添加如下依赖: ``` <!-- 默认数据源HikariCP) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> ``` 然后,需要修改配置文件`application.yml`或`application.properties`,配置数据源的相关信息,包括数据源的类型、驱动类型、连接地址、用户名和密码等。示例如下: ``` spring: datasource: type: com.zaxxer.hikari.HikariDataSource # 数据源的类型 driver-class-name: com.mysql.cj.jdbc.Driver # 数据源的驱动类型 url: jdbc:mysql://localhost:3306/imooc?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai # 数据源的连接地址 username: root # 数据源的用户名 password: root # 数据源的密码 ``` 这样就完成了Spring Boot与数据连接池的整合。通过配置文件中的相关信息,Spring Boot将会自动创建HikariCP连接池,并使用该连接池进行数据库操作,提高数据库的执行效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot整合Druid连接池](https://blog.csdn.net/weixin_42522705/article/details/126574689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot 整合 数据库连接池(Druid、HicariCP、C3P0等等)](https://blog.csdn.net/qq_53463544/article/details/126416981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzhSWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值