Java 集成kylin

news/2024/11/25 18:41:08/

1、创建maven工程,添加kylin和c3p0依赖

<dependency>		<groupId>org.apache.kylin</groupId><artifactId>kylin-jdbc</artifactId><version>2.2.0</version>
</dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version>
</dependency>

2、编写代码

(1)创建连接池

package com.ldy.kylin;import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;/*** @类名: KylinConnPool<br>* @描述: Kylin的jdbc连接池<br>* @创建者: lidongyang<br>* @修改时间: 2018年7月3日 下午4:03:59<br>*/
public class KylinJdbcConnPool {public static final String url = "jdbc:kylin://192.168.2.20:7070/ldy_test";public static final String username = "ldy";public static final String password = "123456";private static final KylinJdbcConnPool instance = new KylinJdbcConnPool();private static ComboPooledDataSource comboPooledDataSource;static {try {try {// Class.forName("com.mysql.jdbc.Driver");Class.forName("org.apache.kylin.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}comboPooledDataSource = new ComboPooledDataSource();comboPooledDataSource.setDriverClass("org.apache.kylin.jdbc.Driver");comboPooledDataSource.setJdbcUrl(url);comboPooledDataSource.setUser(username);comboPooledDataSource.setPassword(password);// 下面是设置连接池的一配置comboPooledDataSource.setMaxPoolSize(20);comboPooledDataSource.setMinPoolSize(5);} catch (PropertyVetoException e) {e.printStackTrace();}}public synchronized Connection getConnection() {Connection connection = null;try {connection = comboPooledDataSource.getConnection();} catch (SQLException e) {e.printStackTrace();}return connection;}public static KylinJdbcConnPool getInstance() {return instance;}
}

(2)编写JDBC帮助类

package com.ldy.kylin;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import org.apache.commons.lang.StringUtils;/*** @类名: KylinHelper<br>* @描述: kylin操作数据库帮助类<br>* @创建者: lidongyang<br>* @修改时间: 2018年7月3日 下午4:38:51<br>*/
public class KylinJdbcHelper {/*** @方法名: executeQuery<br>* @描述: 执行能够返回结果集的查询语句<br>* @创建者: lidongyang<br>* @修改时间: 2018年7月3日 下午3:57:03<br>* @param connection* @param sql* @param params* @return*/public static ResultSet executeQuery(Connection connection, String sql, Object... params) {if (StringUtils.isBlank(sql)) {System.out.println("sql语句不为空");return null;}ResultSet rs = null;PreparedStatement ps = null;System.out.println("sql--> " + sql);try {ps = connection.prepareStatement(sql);if(null != params) {for (int i = 0; i < params.length; i++) {ps.setObject(i+1, params[i]);}}rs = ps.executeQuery();} catch (SQLException e) {e.printStackTrace();}return rs;}/*** @方法名: executeUpdate<br>* @描述: 执行update、insert、delete等语句,返回值为受影响的行数<br>* @创建者: lidongyang<br>* @修改时间: 2018年7月3日 下午3:58:20<br>* @param connection* @param sql* @param params* @return*/public static int executeUpdate(Connection connection, String sql, Object... params) {int resCount = 0;if (StringUtils.isBlank(sql)) {System.out.println("sql语句不能为空");return resCount;}PreparedStatement ps = null;System.out.println("sql--> " + sql);try {ps = connection.prepareStatement(sql);if(null != params) {for (int i = 0; i < params.length; i++) {ps.setObject(i+1, params[i]);}}resCount = ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {}return resCount;}/*** @方法名: closeConnection<br>* @描述: 关闭连接<br>* @创建者: lidongyang<br>* @修改时间: 2018年7月3日 下午4:21:28<br>  * @param connection*/public static void closeConnection(Connection connection) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}
}

(3)编写demo

package com.ldy.kylin;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class KylinJdbcDemo {public static void main(String[] args) {Connection connection = KylinJdbcConnPool.getInstance().getConnection();ResultSet rs = null;String sql = "select dt,sum(new_user_num)"+ " from ldy_test_table"+ " where dt > ?"+ " group by dt"+ " order by dt"+ " limit 10 offset 0";try {rs = KylinJdbcHelper.executeQuery(connection, sql, 20180501);while (rs.next()) {System.out.println(rs.getString(1));}} catch (Exception e) {e.printStackTrace();} finally {KylinJdbcHelper.closeConnection(connection);}}
}
4、查看结果



http://www.ppmy.cn/news/772987.html

相关文章

vue使用svg的问题

vue使用svg 做的一个可视化大屏项目中需要引入svg, 直接绑定svg元素的某些值&#xff0c;在ui给的svg中出现了style标签用作svg的样式,然后就会报错。结果查阅资料知道了两个解决方法. 方法1&#xff1a; 将svg中的style标签修改为<svg:style></svg:style>。实例…

jxl.jar包基础——简介

jxl.jar包简介/java操作excel 作者的网站上对它的特征有如下描述&#xff1a; ● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体、数字、日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套AP…

[MCU/SOC]上下拉电阻

定义 拉电阻&#xff1a;在某信号线上&#xff0c;将电阻一端与VCC/GND相接&#xff0c;电阻另一端与信号线相接&#xff0c;此时电阻的另一端的电平即强制接近VCC/GND&#xff0c;接近程度取决于电阻的大小。 之所以需要加个电阻而不是将所需端点直接连接VCC/GND&#xff0c;…

12.15

1. #include<stdio.h> #include<time.h> #include<stdlib.h> int main(){int a;int b;int c1;int count0;srand(time(NULL));printf("*************游戏开始***************\n"); while(c1 || scanf("%d",&c)){if(c1){count;a ran…

Jlink

转自 https://blog.csdn.net/u013372900/article/details/51479393 LINK仿真器与ST-LINK仿真器的安装与配置.pdf 工欲善其事&#xff0c;。。。。。。stm32的开发环境搭建 观看地址 说到仿真器&#xff0c;首先要了解一下JTAG。 JTAG协议 JTAG&#xff08;Joint Test A…

08 LIN

基础知识 LIN的全称为Local Interconnect Network。LIN主要功能是为CAN总线网络提供辅助功能&#xff0c;应用场合有智能传感节点、自动车窗节点等。 硬件 特点 1.采用单主多从的组网方式&#xff0c;无CAN总线那样的仲裁机制&#xff0c;最多可连接16个节点&#xff08;1主…

【Web3】Mnemonic Word Create Wallet

目录 Create Mnemonic Word 介绍&#xff1a; 一.根据 Mnemonic Word 生成密钥对 keypair 二.通过 keypair 获取 Wallet 地址 和 private key 代码 Create Mnemonic Word npm install bip393.1.0 import * as bip39 from bip39 let mnemonic bip39.generateMnemonic() co…

Jmeter自动化性能测试常见问题

一、request 请求超时设置 timeout 超时时间是可以手动设置的&#xff0c;新建一个 http 请求&#xff0c;在“高级”设置中找到“超时”设置&#xff0c;设置连接、响应时间为2000ms。 1. 请求连接超时&#xff0c;连不上服务器。 现象&#xff1a; Jmeter表现形式为&…