Java连接GBase并封装增删改查
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;
}
Java连接GBase并封装增删改查的更多相关文章
- java连接Oracle数据库实现增删改查并在Navicat中显示
创建TEST表 eclipse中的java项目 代码 数据库方法类 DBUtil: package util; import java.sql.Connection; import java.sql. ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- Java API实现Hadoop文件系统增删改查
Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...
- python连接集群mongodb,封装增删改查
1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...
- Java项目——模拟电话薄联系人增删改查
该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...
- 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...
随机推荐
- 可移植类库无法使用async、await关键字
今天遇到了如题所示的问题,平台已经选择了.net 4.5了,可是就是编译不通过,await关键字下出现了红色下划线. 解决方法:安装一个Bcl的补丁包. https://www.nuget.org/p ...
- 查看Linux服务器被映射的公网ip
查看Linux服务器被映射的公网ip 现在云服务器非常流行,不仅企业甚至是个人都可能拥有自己的云服务器,但是目前的云服务器厂商提供的公网IP大都是映射而来,所以在Linux服务器上执行ifconf ...
- paxos ---学习笔记
摘自维基百科:分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing).基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程 ...
- 在每页(分页)报表中重复显示标题 - SQL Server Reporting Service (SSRS)
问题描述 TFS系统提供多种报表,有图表(Chart).Web面板(Dashboard).SharePoint面板.Excel报表,SQL Server Reporting Serivce(SSRS) ...
- .net core 读取本地指定目录下的文件
项目需求 asp.net core 读取log目录下的.log文件,.log文件的内容如下: xxx.log ------------------------------------------beg ...
- 记录.NET Core部署到Linux之.NET Core环境搭建(1)
1.在安装.NET之前,您需要注册Microsoft密钥.注册产品存储库和安装所需的依赖项. 启动我们的虚拟机,输入以下命令: sudo rpm -Uvh https://packages.micro ...
- Cordova - CordovaError: Promise rejected with non-error: 'ios-deploy was not found
错误信息: CordovaError: Promise rejected with non-error: 'ios-deploy was not found. Please download, bui ...
- Servlet实现session读写
前言 一个女人让他的程序员丈夫去商店买东西:你去附近的商店买些面包,如果有鸡蛋的话,买6个回来,这个丈夫买了6个面包回来,他的妻子大吃一惊:你为什么买了6个面包?! 程序员丈夫回答:因为他们有 ...
- python 函数中使用全局变量
python 函数中如果需要使用全局变量,需要使用 global + 变量名 进行声明, 如果不声明,那么就是重新定义一个局部变量,并不会改变全局变量的值 n [1]: a = 3 In [2]: d ...
- 初识storm
storm是Twitter开发的一个开源的分布式实时计算系统,可以简单可靠的处理大量的数据流.storm有很多的应用场景,如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等.storm支持水 ...