基于Druid或HikariDataSource动态数据拉取

简介: 基于Druid或HikariDataSource动态数据拉取

一、项目依赖

springboot项目,默认使用HikariDataSource数据源,Druid依赖如下

 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

二、数据表结构及数据

三、基于Druid代码

package com.lets.controller.system;
 
import com.alibaba.druid.pool.DruidDataSource;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Slf4j
public class Main {
    public static void main(String[] args) throws SQLException {
//      创建数据源
        DruidDataSource druid=new DruidDataSource();
//        设置数据url
        druid.setUrl("jdbc:postgresql://x.xxx.xx.xxx:xxxx/xxxx");
//        设置用户名
        druid.setUsername("xxxxx");
//        设置用户密码
        druid.setPassword("xxxxx");
//        设置驱动名称
        druid.setDriverClassName("org.postgresql.Driver");
//        数据库链接
        Connection connection = druid.getConnection();
//        设置预执行sql
        PreparedStatement preparedStatement = connection.prepareStatement("select * from dictionary where id=?");
//        补充占位符
        preparedStatement.setLong(1,1L);
//       获取返回结果
        ResultSet resultSet = preparedStatement.executeQuery();
//        输出返回结果
        while (resultSet.next()) {
//            根据数据库情况,合理获取对应列
            long ids = resultSet.getLong(1);
            String name = resultSet.getString(2);
            String code = resultSet.getString(3);
            log.info("id->{}    name->{}    code->{}",ids,name,code);
        }
        System.out.println(druid);
//        关闭资源
        if (preparedStatement!=null) {
            preparedStatement.close();
        }
        if (druid!=null) {
            connection.close();
        }
    }
}

四、基于 HikariDataSource代码

package com.lets.controller.system;
 
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
@Slf4j
public class Main2 {
    public static void main(String[] args) throws SQLException {
//        设置数据源配置
        HikariConfig configuration = new HikariConfig();
//        设置数据url
        configuration.setJdbcUrl("jdbc:postgresql://x.xx.xx.xx:xxx/xxx");
//        设置驱动名称
        configuration.setDriverClassName("org.postgresql.Driver");
//        设置用户名
        configuration.setUsername("xxxxx");
//        设置用户密码
        configuration.setPassword("xxxxx");
//      创建数据源
        HikariDataSource dataSource=new HikariDataSource(configuration);
//        数据库链接
        Connection connection = dataSource.getConnection();
//        设置预执行sql
        PreparedStatement preparedStatement = connection.prepareStatement("select * from dictionary where id=?");
//        补充占位符
        preparedStatement.setLong(1,1L);
//       获取返回结果
        ResultSet resultSet = preparedStatement.executeQuery();
//        输出返回结果
        while (resultSet.next()) {
//            根据数据库情况,合理获取对应列
            long ids = resultSet.getLong(1);
            String name = resultSet.getString(2);
            String code = resultSet.getString(3);
            log.info("id->{}    name->{}    code->{}",ids,name,code);
        }
        System.out.println(dataSource);
//        关闭资源
        if (preparedStatement!=null) {
            preparedStatement.close();
        }
        if (dataSource!=null) {
            connection.close();
        }
    }
}

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
SQL druid Java
Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
3558 0
|
Java 数据库连接 数据库
sqlLite 如何使用数据库连接池
这篇文章介绍了如何在SQLite数据库操作中使用HikariCP连接池以减少频繁建立和释放数据库连接的资源消耗,包括在Maven项目中添加依赖、配置HikariDataSource对象以及实现数据库连接池的具体代码示例。
|
SQL 存储 druid
SpringBoot多数据源事务解决方案
之前有文章提供了springboot多数据源动态注册切换的整合方案,在后续使用过程中,发现在事务控制中有多种bug发生,决定对此问题进行分析与解决
1037 0
|
测试技术 数据库 数据库管理
SqlLite数据库连接池
这篇文章介绍了如何使用HikariCP作为SQLite数据库的连接池,包括配置依赖、创建连接池、获取连接、关闭连接以及进行数据库操作的示例代码和性能测试对比。
|
10月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
713 1
|
负载均衡 算法 druid
SpringBoot 项目如何实现动态配置多数据源?
SpringBoot 项目如何实现动态配置多数据源
2862 1
|
存储 设计模式 缓存
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
该文章主要介绍了如何在OpenFeign中集成Ribbon以实现负载均衡,并详细分析了Ribbon中服务选择和服务过滤的核心实现过程。文章还涉及了Ribbon中负载均衡器(ILoadBalancer)和负载均衡策略(IRule)的初始化方式。
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
|
消息中间件 关系型数据库 MySQL
|
XML Java Maven
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
这篇文章详细介绍了如何在Spring Boot项目中使用logback进行日志记录,包括Maven依赖配置、logback配置文件的编写,以及实现的日志持久化和控制台输出效果。
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
|
缓存 负载均衡 Java
OpenFeign第一个可扩展组件通信Client详解
这篇文章详细分析了OpenFeign框架中的第一个可扩展组件——通信Client,包括其默认实现`feign.Client.Default`,以及如何使用`LoadBalancerFeignClient`集成负载均衡能力,并探讨了如何替换默认的`HttpURLConnection`通信组件为`OkHttpClient`或`ApacheHttpClient`。
OpenFeign第一个可扩展组件通信Client详解

热门文章

最新文章