基于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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
存储 关系型数据库 MySQL
DataX: 阿里开源的又一款高效数据同步工具
DataX 是由阿里巴巴集团开源的一款大数据同步工具,旨在解决不同数据存储之间的数据迁移、同步和实时交换的问题。它支持多种数据源和数据存储系统,包括关系型数据库、NoSQL 数据库、Hadoop 等。 DataX 提供了丰富的数据读写插件,可以轻松地将数据从一个数据源抽取出来,并将其加载到另一个数据存储中。它还提供了灵活的配置选项和高度可扩展的架构,以适应各种复杂的数据同步需求。
|
监控 Java 大数据
如何在Java中实现批量数据处理
如何在Java中实现批量数据处理
|
Java 数据库连接 数据库
sqlLite 如何使用数据库连接池
这篇文章介绍了如何在SQLite数据库操作中使用HikariCP连接池以减少频繁建立和释放数据库连接的资源消耗,包括在Maven项目中添加依赖、配置HikariDataSource对象以及实现数据库连接池的具体代码示例。
|
测试技术 数据库 数据库管理
SqlLite数据库连接池
这篇文章介绍了如何使用HikariCP作为SQLite数据库的连接池,包括配置依赖、创建连接池、获取连接、关闭连接以及进行数据库操作的示例代码和性能测试对比。
|
Java API 开发者
springboot 多线程的使用原理与实战
在Spring Boot中实现多线程,主要依赖于Spring框架的@Async注解以及底层Java的并发框架。这里将深入剖析Spring Boot多线程的原理,包括@Async注解的工作方式、任务执行器的角色以及如何通过配置来调整线程行为。
1429 5
|
消息中间件 Java RocketMQ
Spring Boot与RocketMQ的集成
Spring Boot与RocketMQ的集成
|
Java 关系型数据库 MySQL
mysql连接池DataSource,DruidDataSource的理解及其使用
mysql连接池DataSource,DruidDataSource的理解及其使用
1763 0
|
Java Spring
springboot项目读取 resources 目录下的文件的9种方式(总结)
springboot项目读取 resources 目录下的文件的9种方式(总结)
7850 1
|
消息中间件 Java Spring
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
1538 0