Beispiel einer JDBC-Verbindung zur GaussDB-Cloud-Datenbank

Inhaltsverzeichnis

1. Experimentelle Umgebung

2. Melden Sie sich bei HUAWEI CLOUD an, um eine Testbibliothekstabelle zu erstellen

1. Melden Sie sich bei der GaussDB-Clouddatenbank an

2. Erstellen Sie Datenbanken und Tabellen zum Testen

3. Fügen Sie eine gemeinsame Rolle (Benutzer) für Anmelde- und Zugriffstests hinzu (optional).

4. Besorgen Sie sich die entsprechende öffentliche Netzwerk-IP

3. Erstellen Sie ein Java-Projekt

1. Java-Projekt erstellen

2. JAR-Paket hinzufügen

3. Bearbeiten Sie den Java-Code

4. Führen Sie den Test aus und sehen Sie sich die Testergebnisse an

 

1. Experimentelle Umgebung

1. Lokale JDB-Version: Diese experimentelle Version: JDK-Version: Java 11.0.17

(Anmelde-URL: Java Downloads | Oracle   , wählen Sie die entsprechende JDK-Version zum Herunterladen und Installieren aus)

2. Huawei Cloud-Umgebung: Guangzhou-freundliche Benutzerumgebung, elastisches öffentliches Netzwerk

2. Melden Sie sich bei HUAWEI CLOUD an, um eine Testbibliothekstabelle zu erstellen

1. Melden Sie sich bei der GaussDB-Clouddatenbank an

Melden Sie sich als IAM-Benutzer an:

 

 Geben Sie nacheinander ein: „Service List – Data Management Service DAS – Development Tools – Login Corresponding Instance, wie unten gezeigt:

 

 

Klicken Sie auf Verbindung testen. Es wird angezeigt, dass die Verbindung erfolgreich hergestellt wurde. Klicken Sie auf OK, um Folgendes einzugeben:

 

2. Erstellen Sie eine Datenbank und eine Tabelle zum Testen

Erstellen Sie die java_test-Bibliothek:

 

 Erstellen Sie die Tabelle customer_t1:

TABELLE ERSTELLEN customer_t1(

       c_customer_id INTEGER

     , c_customer_name VARCHAR(32)

);

 

 

3. Fügen Sie eine gemeinsame Rolle (Benutzer) für Anmelde- und Zugriffstests hinzu (optional).

Es wurde eine allgemeine Rolle „test_role“ hinzugefügt, die standardmäßig Anmeldeberechtigungen kauft (Ermächtigung für die Verbindung).

 

Erteilen Sie test_role die Berechtigung, die Tabelle customer_t1 abzufragen.

GRANT SELECT on public.customer_t1 TO test_role;

 

 

 (Tipp: Ersetzen Sie beim Testen den Benutzernamen und das Geheimnis der Verbindung im Java-Skript durch diejenigen, die bei der Erstellung festgelegt wurden.)

4. Besorgen Sie sich die entsprechende öffentliche Netzwerk-IP

Erhalten Sie eine öffentliche IP für die lokale Verbindung zur GaussDB-Cloud-Datenbank:

 

 

 Testen Sie, ob die IP lokal gepingt wird (win+r - cmd - ping ip):

 

 

3. Erstellen Sie ein Java-Projekt

1. Java-Projekt erstellen

 

 

2. JAR-Paket hinzufügen

1) Laden Sie das entsprechende gsjdbc4.jar herunter und dekomprimieren Sie es: https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1660794000209/GaussDB_opengauss_client_tools.zip

2) Erstellen Sie einen lib-Ordner im Verzeichnis src des Projekts, kopieren Sie die dekomprimierte Datei gsjdbc4.jar und fügen Sie sie in dieses Verzeichnis ein

 

3) Fügen Sie es manuell zum Projekt hinzu

 

 

3. Bearbeiten Sie den Java-Code

Stellen Sie eine Verbindung zur GaussDB-Cloud-Datenbank her, führen Sie „Einfügen“, „Aktualisieren“ und „Auswählen“ aus

Paket gaussdb_jdbc;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

öffentliche Klasse GaussDB_jdbc {

 

    static final String JDBC_DRIVER = "org.postgresql.Driver"

    static final String DB_URL = "jdbc:postgresql://*.*.*.*:8000/java_test" ;

                                 

    // Der Benutzername und das Passwort der Datenbank müssen entsprechend Ihren eigenen Angaben festgelegt werden

    statischer finaler String USER = "****" ;

    statischer finaler String PASS = "****" ;

   

    // Einfügen ausführen

    public static void InsertData(Connection conn ){

        Anweisung stmt = null ;

           versuche es mit {

              stmt = conn.createStatement();

              String sql;

              sql = "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1001,'张三');"

                  + "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1002,'李四');"

                  + "INSERT INTO public.customer_t1(c_customer_id, c_customer_name) VALUES(1003,'王五');";

              ResultSet rs = stmt.executeQuery(sql);

              rs.close();

           } catch (SQLException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

    }

   

    // 执行update

    public static void UpadteData(Connection conn){

        Statement stmt = null;

           try {

              stmt = conn.createStatement();

              String sql;

              sql = "UPDATE customer_t1 SET c_customer_name ='jdbc' WHERE c_customer_id =1003 ";

              ResultSet rs = stmt.executeQuery(sql);

              rs.close();

           } catch (SQLException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

    }

     

    // 执行select

    public static void SelectData(Connection conn){

        Statement stmt = null;

           try {

              stmt = conn.createStatement();

              String sql;

              sql = "SELECT c_customer_id, c_customer_name FROM public.customer_t1";

              ResultSet rs = stmt.executeQuery(sql);

     

              // 展开结果集数据库

              while(rs.next()){

                  // 通过字段检索

                  String column1 = rs.getString("c_customer_id");

                  String column2 = rs.getString("c_customer_name");

 

                  // 输出数据

                  System.out.print("c_customer_id: " + column1);

                   System.out.print(", c_customer_name: " + column2);

                  System.out.print("\n");    

              }

              rs.close();

           } catch (SQLException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

    }

   

   

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       // 打开链接

       try {

           System.out.println("连接数据库...");      

           Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);      

                                      

           // 执行插入数据

           InsertData(conn);         

                      

           //执行更新数据

           UpadteData(conn);

                      

           //执行查看

           SelectData(conn);               

                      

           conn.close();

       } catch (SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

    }

 

}

 

Tip:ip地址、用户及秘钥根据实际替换即可。

四、执行并查看测试结果

执行java脚本前的数据库表情况(0条记录):

 

 通过JAVA脚本访问GaussDB云数据库,并进行库表操作:

 

1)JAVA脚本执行情况:

 

 2)数据库表查询情况(插入三条记录,更新了一条记录):

 

结论:以上结果均与GaussDB云数据端的数据完全匹配,测试结果正确,jdbc访问GaussDB顺利完成。

 

 

另,大家可以通过新增角色(或用户)进行测试,例如参考上文中的第二大点中的第3小点进行测试。 本次实验到此结束,欢迎大家互动、交流!

{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/gaussdb/blog/8816317
Empfohlen
Rangfolge