Java使⽤若依SpringBoot连接kingbaseES⾦仓数据库
Java连接kingbaseES数据库
全篇博客围绕若依框架进⾏分享
⼤家可根据⾃⼰的需求进⾏借鉴及修改,不保证每个⼈的需求⼀样。
前⾔
在之前关于⼈⼤⾦仓数据库,我听都没听说过。所以在需要使⽤Java连接该数据库进⾏数据展⽰以及图表展⽰时,我是⽆厘头的。所以最开始的⼀步,我得先了解关于kingbaseES这个数据库,以及该如何使⽤Java进⾏连接。也就是类似于连接MySQL那样,连接kingbaseES。
1.下载kingbase驱动jar
在此提供了两种⽅法,第⼀种是引⼊jar,第⼆种直接maven进⾏下载。(不过我使⽤maven下载的时候不太理想,所以建议可以按着我的步骤来引⼊第三⽅jar)
②Maven
<!-- mvnrepository/artifact/com.esen.jdbc/kingbasejdbc4 -->
<dependency>
<groupId>com.esen.jdbc</groupId>
<artifactId>kingbasejdbc4</artifactId>
<version>7.1.2</version>
</dependency>
jar解压后,可以看到如下⼏个jar,根据⾃⼰的需要使⽤。本篇博客⽤的是kingbasejdbc4.jar
2.SpirngBoot项⽬引⼊驱动jar
⾸先来个简单的demo连接测试
第⼀步放kingbasejdbc2.jar
在resources下新建lib⽂件夹把kingbasejdbc4.jar放⼊⽂件中
第⼆步项⽬中引⽤kingbasejdbc4.jar驱动
快捷Ctrl+Alt+Shift+S
④到放⼊admin模块下lib中的kingbasejdbc4.jar
注意:千万别引⼊到第⼀个ruoyi中了。到时候测试连接的时候会报错为空的异常。(已踩坑)
第三步,测试连接
demo.java
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* @author myy
* @create 2020-08-17 16:12
*/
public class demo {
public static String url ="jdbc:kingbase://192.168.1.140:12345/demo"; public static String name ="com.kingbase.Driver";
public static String user ="root";
public static String passsword ="12345";
public Connection conn = null;
public PreparedStatement pst = null;
public demo(String sql){
try{
Class.forName(name);
conn = Connection(url,user,passsword);
pst = conn.prepareStatement(sql);//准备执⾏sl
System.out.println("yes");
}catch(Exception e){
e.printStackTrace();
}
}
public void close(){
try{
this.pst.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
Test
/
**
* @author myy
* @create 2020-08-17 16:21
*/
public class Test {
static String sql = null;
static demo db1 = null;
static ResultSet ret = null;
public static void main(String[] args){
sql ="select * from demo";
db1 =new demo(sql);
try{
ret = uteQuery();
()){
String id = String(1);
String type = String(2);
String typeabbre = String(3);
System.out.println(id+"\t"+type+"\t"+typeabbre);//获取字段打印查询结果}
ret.close();
db1.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
结果图省略
3.若依框架中查询kingbaseES
可直接参考
①l配置从库数据源
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/state_dky?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serv erTimezone=GMT%2B8mysql下载哪个盘
username: root
password: 123456
driverClassName: sql.cj.jdbc.Driver
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:kingbase://192.168.1.140:12345/demo
username: root
password: 12345
driverClassName: com.kingbase.Driver
# 初始连接数
initialSize: 5
# 最⼩连接池数量
minIdle: 10
# 最⼤连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进⾏⼀次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置⼀个连接在池中最⼩⽣存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置⼀个连接在池中最⼤⽣存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置⽩名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理⽤户名和密码
login-username:
login-password:
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
注意:从数据源开关默认是false,这⾥开启true
②我是直接在AircaftServiceImpl放如下代码
/**
* 查询demo列表
*
* @param aircraft demo
* @return demo
*/
@Override
public List<Aircraft>selectAircraftList(Aircraft aircraft)
{
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
List<Aircraft> aircraftList = aircraftMapper.selectAircraftList(aircraft);
DynamicDataSourceContextHolder.clearDataSourceType();
return aircraftList;
}
其余改动不⼤,主要是连接kingbase即可。kingbaseES数据库和mysql数据库⼀些关键字及语句是有差异的。
测试连接参考:
增删改查的可参考:
后续
总结后其实感觉也就主要是连接kingbaseES这个阶段。
踩坑点有
springboot如何引⼊第三⽅jar
kingbase相关驱动及连接
进⾏测试连接及项⽬中模块引⼊jar时放错
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论