示例
此示例将演示如何基于GaussDB 100提供的JDBC接口开发应用程序。
执行此示例前需确保连接数据库的用户在数据库中已存在,若不存在,请参见CREATE USER和GRANT创建用户和授权。
若开启白名单配置检测功能,则需配置IP白名单,具体步骤请参见配置客户端接入认证。
示例代码
//DBtest.java //演示基于JDBC开发的主要步骤,会涉及创建数据库、创建表、插入数据等。 package com.huawei.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; class ExitHandler extends Thread { private Statement cancel_stmt = null; public ExitHandler(Statement stmt) { super("Exit Handler"); this.cancel_stmt = stmt; } public void run() { System.out.println("exit handle"); try { if (this.cancel_stmt != null&&!this.cancel_stmt.isClosed()) { this.cancel_stmt.cancel(); } } catch (SQLException e) { System.out.println("cancel queyr failed."); e.printStackTrace(); } } } public class OLTPConnectDemo { //创建数据库连接。 public static Connection GetConnection(String username, String passwd) { String driver = "com.huawei.gauss.jdbc.ZenithDriver"; String sourceURL = "jdbc:zenith:@192.168.0.1:1888"; Connection conn = null; try { //加载数据库驱动。 Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); return null; } try { //创建数据库连接。 //getConnection(String url, String user, String password) conn = DriverManager.getConnection(sourceURL,username,passwd); System.out.println("Connection succeed!"); } catch (Exception e) { e.printStackTrace(); return null; } return conn; }; //执行普通SQL语句,创建jdbc_test1表。 public static void CreateTable(Connection conn) { Statement stmt = null; try { stmt = conn.createStatement(); // add ctrl+c handler Runtime.getRuntime().addShutdownHook(new ExitHandler(stmt)); //执行普通SQL语句。 int rc = stmt .executeUpdate("CREATE TABLE IF NOT EXISTS jdbc_test1(col1 INTEGER,col2 VARCHAR(10))"); System.out.println("CREATE TABLE succeed!"); stmt.close(); } catch (SQLException e) { if (stmt != null) { try { stmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } } //执行预处理语句,批量插入数据。 public static void BatchInsertData(Connection conn) { PreparedStatement pst = null; try { //生成预处理语句。 pst = conn.prepareStatement("INSERT INTO jdbc_test1 VALUES (?,?)"); for (int i = 0; i < 3; i++) { //添加参数。 pst.setInt(1, i); pst.setString(2, "data " + i); pst.addBatch(); } //执行批处理。 pst.executeBatch(); System.out.println("INSERT INTO succeed!"); pst.close(); } catch (SQLException e) { if (pst != null) { try { pst.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } } //执行预编译语句,更新数据。 public static void ExecPreparedSQL(Connection conn) { PreparedStatement pstmt = null; try { pstmt = conn .prepareStatement("UPDATE jdbc_test1 SET col2 = ? WHERE col1 = 1"); pstmt.setString(1, "new Data"); int rowcount = pstmt.executeUpdate(); System.out.println("UPDATE succeed!"); pstmt.close(); } catch (SQLException e) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } } /** * 主程序,逐步调用各静态方法。 * @param args */ public static void main(String[] args) { String userName = "omm"; String password = "gaussdb_123"; //创建数据库连接。 Connection conn = GetConnection(userName, password); //创建表。 CreateTable(conn); //批插数据。 BatchInsertData(conn); //执行预编译语句,更新数据。 ExecPreparedSQL(conn); //关闭数据库连接。 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。