基于Druid或HikariDataSource动态数据拉取

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 基于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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
存储 Java 索引
Elastic实战:彻底解决spring-data-elasticsearch日期、时间类型数据读取报错问题
在使用spring-data-elasticsearch读取es中时间类型的数据时出现了日期转换报错,不少初学者会在这里困惑很久,所以今天我们专门来解读该问题的几种解决方案。
2034 0
Elastic实战:彻底解决spring-data-elasticsearch日期、时间类型数据读取报错问题
|
6月前
|
SQL 监控 druid
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
|
6月前
|
存储 Prometheus Cloud Native
Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
|
6月前
|
存储 Java 关系型数据库
springboot整合多数据源的配置以及动态切换数据源,注解切换数据源
springboot整合多数据源的配置以及动态切换数据源,注解切换数据源
641 0
|
存储 JSON 缓存
K8s日志组件-Loki是如何存储数据的?
日志记录本质上是一个事件。大多数语言、应用程序框架或库都支持日志,表现形式可以是字符串这样原始的非结构化数据,也可以是JSON等半结构化数据。开发者可以通过日志来分析应用的执行状况,报错信息,分析性能…… 正因为日志极其灵活,生成非常容易,没有一个统一的结构,所以它的体量也是最大的。
534 0
|
存储 druid Java
Springboot+Druid动态切换数据源
关于数据源的切换,在实际使用中经常出现,本文主要是使用Druid,最近经常使用到,根据以往项目的使用,调整后进行记录,方便自己以后查看,也便于大家一起学习
1712 0
|
SQL 监控 druid
使用Druid数据源并查看监控页面
使用Druid数据源并查看监控页面
1550 0
|
Java 关系型数据库 MySQL
Elastic实战:通过spring data elasticsearch实现索引的CRUD;实现mysql全量/增量同步到ES
elasticsearch官方的java客户端有tranport client,rest high level client,但进行索引的增删改查的操作不够简便。因此我们引入spring data elasticsearch来实现索引的CRUD
350 0
Elastic实战:通过spring data elasticsearch实现索引的CRUD;实现mysql全量/增量同步到ES