1. 程式人生 > >人大金倉資料庫總結(SQL和JDBC)

人大金倉資料庫總結(SQL和JDBC)

人大金倉作為一款國產資料庫,使用的人數和相關資料都比較少。

最近使用人大金倉資料庫,做了個簡單的SQL和java jdbc的測試,希望能夠供大家參考。

1、SQL語句

建立表:

CREATE TABLE "PUBLIC"."TB_SYS_CONFIGURE"(
"ATTR_KEY" VARCHAR (100) NOT NULL ,
"ATTR_VALUE" VARCHAR (100) NOT NULL
);

新增資料:

INSERT INTO TB_SYS_CONFIGURE
(ATTR_KEY, ATTR_VALUE)
VALUES ('accessCount', '3244'),
 ('accessCountOne', '3456'),
 ('accessCountTwo', '7890'); 

下面的截圖跟資料對不上,因為最開始忘了截圖了,截的是我crud測試後的,出入不大,供頁面參考。

2、JDBC

然後,有了資料以後,測試一下他的JDBC。

引入jar包  

下面是我的IDEA裡引入jar包的方法,通過Libraries新增

建立連線類

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

public class Getcon {
    public static final String url = "jdbc:kingbase://192.168.0.211:54322/TEST";  //改為自己資料庫地址和名字
    public static final String name = "com.kingbase.Driver";
    public static final String user = "SYSTEM";  
    public static final String password = "krms";  //這裡的使用者名稱和密碼設定為自己的

    public Connection conn = null;
    public PreparedStatement pst = null;

    public Getcon(String sql) {
        try {
            //Class.forName(name);//指南中的這個方法執行不成功
            DriverManager.registerDriver(new com.kingbase.Driver());
            conn = DriverManager.getConnection(url, user, password);//獲取連線  
            pst = conn.prepareStatement(sql);//準備執行語句 
            System.out.print("yes");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void close() {
        try {
            this.conn.close();
            this.pst.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}  

 操作類-JDBC增刪改查

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class KingBaseTest {

    static String sql = null;
    static Getcon db1 = null;
    static ResultSet ret = null;

    public static void main(String[] args) {
        query();
        //update();
        //add();
        //delete();
    }

    public static void  query(){
        sql = "select * from TB_SYS_CONFIGURE;";//要執行的SQL語句,改成自己的表什麼的
        db1 = new Getcon(sql);//建立資料庫物件
        try {
            ret = db1.pst.executeQuery();//執行語句,ret是結果
            while (ret.next()) {
                System.out.println(ret.getString(1)+": "+ret.getString(2) );
            }//顯示資料
            ret.close();
            db1.close();//關閉連線
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void  update(){
        sql = "\n" +
                "UPDATE TB_SYS_CONFIGURE \n" +
                "SET ATTR_KEY='accessCountTest' \n" +
                "WHERE ATTR_VALUE='3456';\n";//要執行的SQL語句,改成自己的表什麼的
        db1 = new Getcon(sql);//建立資料庫物件

        try {
            int i = db1.pst.executeUpdate();
            if (i>0){
                System.out.println("修改成功");
            }
            else {
                System.out.println("修改失敗");
            }
            ret.close();
            db1.close();//關閉連線
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void  add(){
        sql = "insert into TB_SYS_CONFIGURE (ATTR_KEY,ATTR_VALUE) values(?,?);\n";//要執行的SQL語句,改成自己的表什麼的
        db1 = new Getcon(sql);//建立資料庫物件
        PreparedStatement preparedStatement = null;
        try {
            preparedStatement = db1.conn.prepareStatement(sql);
        preparedStatement.setString(1,"accessADD");
        preparedStatement.setString(2,"12345");
        int i1 = preparedStatement.executeUpdate();
        if (i1>0){
            System.out.println("修改成功");
        }
        else {
            System.out.println("修改失敗");
        }
        ret.close();
        db1.close();//關閉連線
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void delete(){
        sql = " delete from TB_SYS_CONFIGURE where ATTR_VALUE=7890 ";
        db1 = new Getcon(sql);//建立資料庫物件
        try {
            int i1 = db1.pst.executeUpdate();
            if (i1>0){
                System.out.println(i1+"個刪除成功");
            }
            else {
                System.out.println("刪除失敗");
            }
            ret.close();
            db1.close();//關閉連線
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}