SpringBoot从Durid连接池取出一个connection连接

 工具类

package cn.sits.rjb.common.utils;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

@Component
public class SpringUtils implements ApplicationContextAware {

    private static ApplicationContext applicationContext;
    @Override
    public void setApplicationContext(ApplicationContext applicationContextParam) throws BeansException {
        applicationContext=applicationContextParam;
    }
    public static Object getObject(String id) {
        Object object = null;
        object = applicationContext.getBean(id);
        return object;
    }
    public static <T> T getObject(Class<T> tClass) {
        return applicationContext.getBean(tClass);
    }

    public static Object getBean(String tClass) {
        return applicationContext.getBean(tClass);
    }

    public <T> T getBean(Class<T> tClass) {
        return applicationContext.getBean(tClass);
    }
}

 前提:Durid配置需要指定Bean Name

 代码获取Connection 

druidDataSource.getConnection()获取到的类型是:com.alibaba.druid.pool.DruidPooledConnection,被druid包装过的,

需要使用unwrap()转换一下,

否则会报错:com.alibaba.druid.pool.DruidPooledConnection cannot be cast to oracle.jdbc.OracleConnection

//与Durid配置文件指定的Bean一致
private DruidDataSource druidDataSource = (DruidDataSource)SpringUtils.getBean("oracleDataSource");


//此处druidDataSource.getConnection()获取到的类型是:com.alibaba.druid.pool.DruidPooledConnection,被druid包装过的,需要使用unwrap()转换一下
Connection conn = druidDataSource.getConnection();
conn = conn.unwrap(OracleConnection.class);

 

参考文章:https://stackoverflow.com/questions/15483356/connection-cannot-be-cast-to-oracle-jdbc-oracleconnection

好的,以下是一个简单的Spring Boot连接池配置: 1. 添加依赖 在 `pom.xml` 文件添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.1</version> </dependency> </dependencies> ``` 其,`spring-boot-starter-jdbc` 是 Spring Boot JDBC 的启动器,`HikariCP` 是一个高性能的 JDBC 连接池。 2. 配置数据源 在 `application.properties` 文件添加以下配置: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.hikari.connection-timeout=20000 spring.datasource.hikari.maximum-pool-size=10 ``` 其,`spring.datasource.url`、`spring.datasource.username`、`spring.datasource.password`、`spring.datasource.driver-class-name` 分别是数据库连接信息,`spring.datasource.hikari.connection-timeout` 是连接超时时间,`spring.datasource.hikari.maximum-pool-size` 是最大连接数。 3. 使用连接池 在需要使用连接池的代码注入 `DataSource` 数据源即可使用连接池。例如: ```java @RestController public class UserController { @Autowired private DataSource dataSource; @GetMapping("/users") public List<User> getUsers() throws SQLException { try (Connection connection = dataSource.getConnection()) { Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM users"); List<User> users = new ArrayList<>(); while (resultSet.next()) { User user = new User(); user.setId(resultSet.getInt("id")); user.setName(resultSet.getString("name")); user.setAge(resultSet.getInt("age")); users.add(user); } return users; } } } ``` 以上就是一个简单的 Spring Boot 连接池配置和使用示例。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值