java操作Apache druid的实例代码
作者:一一可可 时间:2023-12-24 02:10:58
1. 添加maven依赖包
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
<version>1.15.0</version>
</dependency>
2. 编写工具类
package com.hnu.druid;
import org.apache.calcite.avatica.AvaticaConnection;
import org.apache.calcite.avatica.AvaticaStatement;
import org.springframework.stereotype.Component;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;
/**
* @description:
* @author: YUANHX
* @create: 7:11 下午
**/
@Component
public class DruidJdbcUtil {
private static ThreadLocal<AvaticaConnection> threadLocal = new ThreadLocal<>();
private static final String DRUID_URL = "jdbc:avatica:remote:url=http://172.16.0.160:8888/druid/v2/sql/avatica/";
/**
* 打开连接
* @param
* @return
* @throws SQLException
*/
public static AvaticaConnection connection() throws SQLException {
Properties properties = new Properties();
AvaticaConnection connection = (AvaticaConnection) DriverManager.getConnection(DRUID_URL, properties);
threadLocal.set(connection);
return connection;
}
/**
* 关闭连接
* @throws SQLException
*/
public static void closeConnection() throws SQLException{
System.out.println("关闭线程:"+threadLocal.get());
AvaticaConnection conn = threadLocal.get();
if(conn != null){
conn.close();
threadLocal.remove();
}
}
/**
* 根据sql查询结果
* @param
* @param sql
* @return
* @throws SQLException
*/
public static ResultSet executeQuery (String sql) throws SQLException{
AvaticaStatement statement = connection().createStatement();
ResultSet resultSet = statement.executeQuery(sql);
return resultSet;
}
/*public static Object crud(String sql, Class clazz, List<Object> params) throws SQLException{
AvaticaStatement statement = connection().createStatement();
Object obj = null;
for (int i = 0; i < params.size(); i++) {
statement.set
}
return obj;
}*/
public static void main(String[] args) {
try {
String sql = "SELECT * FROM \"vehicleCondition\" limit 20";
for (int i = 0; i < 5; i++) {
ResultSet resultSet = executeQuery(sql);
System.out.println("开始连接"+i + "; 连接线程:"+threadLocal.get());
while(resultSet.next()){
String equipmentCode = resultSet.getString("EquipmentCode");
String vkaCode = resultSet.getString("VKACode");
// System.out.println(equipmentCode + " ; "+ vkaCode);
}
closeConnection();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
来源:https://blog.csdn.net/weixin_41452575/article/details/109668693
标签:java,Apache,druid
0
投稿
猜你喜欢
Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表功能
2023-08-28 16:52:09
Android高级图片滚动控件实现3D版图片轮播器
2022-03-14 23:36:30
swagger如何返回map字段注释
2023-02-22 08:56:27
Maven安装及MyEclipse中使用Maven
2023-06-20 04:29:07
Android view绘制流程详解
2023-05-16 07:53:25
SpringBoot全局异常与数据校验的方法
2023-12-11 10:46:06
java 使用Scanner类接收从控制台输入的数据方式
2023-10-23 08:54:57
Android中利用xml文件布局修改Helloworld程序
2023-10-24 08:45:05
mybatis关系映射之一对多和多对一
2021-08-01 21:14:26
Android线程间通信 Handler使用详解
2022-10-16 09:22:33
Java源码解析LinkedList
2023-04-28 02:56:18
Android实现图片自动切换功能(实例代码详解)
2022-11-10 00:30:37
Java正则验证IP的方法实例分析【测试可用】
2023-05-25 03:28:57
JAVA 内存溢出案例汇总
2022-02-16 08:49:22
java Spring的启动原理详解
2022-09-02 04:39:59
说说在Spring中如何引用外部属性文件的方法
2023-09-18 21:47:25
使用java.nio.file 库优雅的操作文件详解
2022-09-20 00:51:12
Android TextView字幕效果实例
2022-03-18 14:55:13
OpenCV实现人脸识别简单程序
2023-07-07 00:31:12
Android网络数据开关用法简单示例
2021-07-20 00:06:06