天天看點

Java 實作Gbase資料庫增删改查功能

Java 實作Gbase資料庫增删改查功能

具體代碼如下

主要: 要記得在官網下載下傳驅動包gbase-connector-java-8.3-bin.jar

package com.advance.JDBC;

import org.apache.log4j.Logger;

import org.apache.storm.command.list;

import java.sql.;

import java.util.;

public class Connect_GBase {

private static Logger logger = Logger.getLogger(Connect_GBase.class);

//三大核心接口

private static Connection conn = null;

private static PreparedStatement pstmt = null;

private static ResultSet rs = null;

public static Connection connectGBase() {

//加載MySql的驅動類

try {

Class.forName(“com.gbase.jdbc.Driver”);

} catch (ClassNotFoundException e) {

logger.error(“找不到驅動程式類 ,加載驅動失敗!”);

e.printStackTrace();

}

//URL

String url = “jdbc:gbase://10.136.1.215:5258/testdb?characterEncoding=utf8”;

//賬号

String username = “root”;

//密碼

String password = “gbase8a”;

try {

conn = DriverManager.getConnection(url,username,password);

} catch (SQLException e) {

logger.error(“資料庫連接配接失敗!”);

e.printStackTrace();

}

return conn;

}

//關閉資料庫連接配接

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();

}

}

}

public static List resultSetToList(ResultSet rs,String columnName) throws java.sql.SQLException {

if (rs == null)

return Collections.EMPTY_LIST;

ResultSetMetaData md = rs.getMetaData(); //得到結果集(rs)的結構資訊,比如字段數、字段名等

int columnCount = md.getColumnCount(); //傳回此 ResultSet 對象中的列數

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));

// System.out.println(rowData.get(“id”) + “" + rowData.get(“name”) + "” + rowData.get(“age”) );

// }

// if(columnName==null) {

// list.add(rowData);

// }else {

// list.add(rowData.get(columnName));

// }

// }

while (rs.next()) {

System.out.println(

rs.getString(“id”) + “_” + rs.getString(“name”));

}

return list;

}

public static ResultSet query(String sql) throws SQLException, ClassNotFoundException {

conn = connectGBase();

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

return rs;

}

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();

System.out.println(“執行成功”);

} catch (SQLException e) {

e.printStackTrace();

}

}

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);

System.out.println(sb);

}

while (rs.next()) {

System.out.println(rs.getString(“name”));

}

}

public static void main(String[] args) throws SQLException, ClassNotFoundException {

//update(“update aa set name = ? where id = ?”,new Object[]{“7”,“1”});

// update("insert into COMPANY (id,name,age , address, salary) " +

// “values (?,?,?,?,?)”,new Object[]{“2”,“lisi”,“4”,“6”,“5”});

//update(“delete from aa where id = ?”,new Object[]{“5”});

ResultSet rs = query("select * from COMPANY ");

List<Map<String,Object>> result = resultSetToList(rs,“name”);

output(rs);

closeConnection();

}

// 建表語句:

// CREATE TABLE COMPANY(

// ID int ,

// NAME VARCHAR(40) NOT NULL,

// AGE INT NOT NULL,

// ADDRESS CHAR(50),

// SALARY DECIMAL(10,2)

//);

}