1.介绍

GBase 是南大通用数据技术有限公司推出的自主品牌的数据库产品,目前在国内数据库市场具有较高的品牌知名度;GBase品牌的系列数据库都具有自己鲜明的特点和优势:GBase 8a 是国内第一个基于列存的新型分析型数据库;

GBase是一款小众的、商业数据库,闭源。

2.操作

我的GBase8a版本如下

GBase client Free Edition 8.6.2.33-R3.97866. Copyright (c) 2004-2019, GBase.  All Rights Reserved.

Java连接GBase所需jar包

百度网盘链接:https://pan.baidu.com/s/1zn-11p9ZcGslLAAd80zkbQ

提取码:yyyk

2.1 创建链接

 public static Connection connectGBase() {
//加载MySql的驱动类
try {
Class.forName("com.gbase.jdbc.Driver");
} catch (ClassNotFoundException e) {
logger.error("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace();
}
//URL
String url = "jdbc:gbase://192.168.94.140:5258/power";
//账号
String username = "root";
//密码
String password = "";
try {
conn = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
logger.error("数据库连接失败!");
e.printStackTrace();
}
return conn;
}

2.2 关闭数据库链接

    //关闭数据库连接
public static void closeConnection(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

2.3 查询方法

    /**
* @Author 谷天乐
* @Description 查询方法
* @Date 2019/2/13 10:32
* @Param [sql]
* @return java.sql.ResultSet
**/
public static ResultSet query(String sql) throws SQLException, ClassNotFoundException {
conn = connectGBase();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
return rs;
}

2.4 通用增删改方法

    /**
* @Author 谷天乐
* @Description 支持insert,delete,update操作
* 参数按顺序和占位符对应传入
* demo:
* update("update aa set name = ? where id = ?",new Object[]{"7","1"});
update("insert into aa (id,name) values (?,?)",new Object[]{"5","6"});
update("delete from aa where id = ?",new Object[]{"5"});
* @Date 2019/2/13 10:32
* @Param [sql, values]
* @return void
**/
public static void update(String sql,Object []values) throws SQLException, ClassNotFoundException {
//获取数据库链接
conn=connectGBase();
try {
//预编译
pstmt=conn.prepareStatement(sql);
//获取ParameterMetaData()对象
ParameterMetaData pmd=pstmt.getParameterMetaData();
//获取参数个数
int number=pmd.getParameterCount();
//循环设置参数值
for (int i = 1; i <=number; i++) {
pstmt.setObject(i, values[i-1]);
}
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

2.5 输出

    /**
* @Author 谷天乐
* @Description 输出查询结果
* @Date 2019/2/13 10:33
* @Param [rs]
* @return void
**/
public static void output(ResultSet rs) throws SQLException {
ResultSetMetaData md = rs.getMetaData(); //得到结果集(rs)的结构信息,比如字段数、字段名等
int columnCount = md.getColumnCount();
while(rs.next())
{
StringBuffer sb = new StringBuffer();
for (int i = 1; i <= columnCount; i++) {
sb.append(rs.getObject(i)+" ");
}
logger.debug(sb);
}
}

2.6 查询结果规范化

将ResultSet转换成List

    /**
* @Author 谷天乐
* @Description 将ResultSet转换成List
* @Date 2019/2/13 10:31
* @Param [rs]
* @return java.util.List
**/
public static List resultSetToList(ResultSet rs) throws java.sql.SQLException {
if (rs == null)
return Collections.EMPTY_LIST;
//得到结果集(rs)的结构信息,比如字段数、字段名等
ResultSetMetaData md = rs.getMetaData();
//返回此 ResultSet 对象中的列数
int columnCount = md.getColumnCount();
List list = new ArrayList();
Map rowData;
while (rs.next()) {
rowData = new HashMap(columnCount);
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
return list;
}

完整代码:https://github.com/cjy513203427/Java_Advanced_Knowledge/blob/master/src/com/advance/JDBC/Connect_GBase.java

Java连接GBase并封装增删改查的更多相关文章

  1. java连接Oracle数据库实现增删改查并在Navicat中显示

    创建TEST表 eclipse中的java项目 代码 数据库方法类 DBUtil: package util; import java.sql.Connection; import java.sql. ...

  2. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  3. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  4. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  5. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  6. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  7. python连接集群mongodb,封装增删改查

    1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...

  8. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

  9. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

随机推荐

  1. JavaOperator小框架制作【精品博客】

    以下是运算小框架的制作过程,以及核心代码,完成(计算,监听,回馈等): package com.demo2.operator; /** * 运算标准接口 * @author Liudeli */ pu ...

  2. Tmux入门教程

      对于程序员来说效率绝对是最重要的,那我们今天就来介绍下一个能极大提高工作效率的软件Tmux.   Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话.不仅如此,你还可以通过 Tmux 使终 ...

  3. 窗口与导航-----Selenium快速入门(十三)

    前面所讲的,大部分是WebDriver这个接口以及相关的类的使用.而本文所讲的窗口与导航,也是里面的内容,而且非常简单,目测就能学会. 一.窗口,也就是window,这里的窗口是指浏览器窗口.他的方法 ...

  4. C#远程桌面连接工具

    1.注册控件:regsvr32 C:\Windows\System32\mstscax.dll. 2.添加RDP Control控件到工具箱中.我选择的RDP Client Control (redi ...

  5. C#之数据类型学习

    C#有以下几种数据类型: 数据类型案例以及取值范围: 界面: 选择int时: 选中long时: 选中float时: 选中double时: 选中decimal时: 选中string时: 选中char时: ...

  6. .net生成条形码

    1..net 标准库(.net standard 2.0) Nuget添加引用:ZXing.Net生成条形码,ZXing.Net.Bindings.ImageSharp生成图片 public stat ...

  7. 847. Shortest Path Visiting All Nodes

    An undirected, connected graph of N nodes (labeled 0, 1, 2, ..., N-1) is given as graph. graph.lengt ...

  8. Memoization-329. Longest Increasing Path in a Matrix

    Given an integer matrix, find the length of the longest increasing path. From each cell, you can eit ...

  9. 牛客多校第四场 J.Hash Function(线段树优化建图+拓扑排序)

    题目传送门:https://www.nowcoder.com/acm/contest/142/J 题意:给一个hash table,求出字典序最小的插入序列,或者判断不合法. 分析: eg.对于序列{ ...

  10. FunDA(8)- Static Source:保证资源使用安全 - Resource Safety

    我们在前面用了许多章节来讨论如何把数据从后台数据库中搬到内存,然后进行逐行操作运算.我们选定的解决方案是把后台数据转换成内存中的数据流.无论在打开数据库表或从数据库读取数据等环节都涉及到对数据库表这项 ...