数据库实验九--OpenGauss(使用JDBC连接数据库)

这篇博客介绍了如何使用JDBC连接openGauss数据库,包括创建数据库和表、配置客户端接入认证、修改配置文件以及运行Java程序执行查询。实验中涉及到了JDBC驱动的引入、数据库连接的建立以及SQL语句的执行,同时强调了权限管理和远程连接的设置。
摘要由CSDN通过智能技术生成

实验要求

了解如何使用JDBC连接数据库。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。openGauss库提供了对JDBC 4.0特性的支持,需要使用JDK1.8版本编译程序代码。
完成以下内容:

  1. 在openGauss中创建数据库、表;
  2. 使用jdbc连接到新创建的数据库;
  3. 在java程序中改变数据库中的值或者输出数据库中的值;
  4. 请参考华为提供的实验手册:openGauss场景化综合应用实验。

使用JDBC连接数据库

在OpenGauss中创建数据库、表请参考之前的实验。

本实验选用JDBC为1.1.0版本

解压后,把postgresql.jar导入到我们要编写的java项目里。(ctrl+alt+shift+s导入jar包)

在这里插入图片描述在这里插入图片描述lib为在实验九项目下新建的目录,导入后完整项目结构如上图。

注意:远程登录不允许使用omm用户
我们需要重新新建一个用户。同时需要授予新用户权限:
在这里插入图片描述
在这里插入图片描述
接着我们要配置客户端接入认证,运行远程连接(这步要退出openGauss,在命令行执行)
例如,下面示例中配置允许IP地址为10.10.0.30的客户端访问本机。

    gs_guc set -N all -I all -h "host all shiyanjiu 10.10.0.30/32 sha256"

本机ip是指物理机ip,在自己的windows上打开cmd输入ipconfig查看ipv4地址。这一步是为了让自己的物理机能够连接到虚拟机中的数据库。
在这里插入图片描述

另外,我们还需修改postgresql.confpg_hba.conf文件。

此文件位于postgresql数据文件目录中,默认为/var/lib/pgsql/data/。将postgresql.conf修改如下:listen_addresses = '*'

pg_hba.conf中增加需要连接该数据库主机的ip地址。如下所示,增加对主机0.0.0.0的信任。

host    all             all             0.0.0.0/0         sha256

先使用find命令查找文件地址(不连接数据库,登陆root账户,并且用cd /返回根目录)

find -name postgresql.conf

在这里插入图片描述在这里插入图片描述
用vi修改:

vi postgresql.conf

进入vi后先按i进入插入模式,找到listen_addresses ,修改

在这里插入图片描述
esc,之后按:wq保存退出

这样第一个文件就修改完了。
同样的方法修改第二个文件pg_hba.conf
在这里插入图片描述

在这里插入图片描述
运行java代码:

package opengauss;

import java.sql.*;

public class connectsql {

    //以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。
    public  static Connection getConnect(String username, String passwd)
    {
        //驱动类。
        String driver = "org.postgresql.Driver";
        //数据库连接描述符。
        String sourceURL = "jdbc:postgresql://192.168.56.124:26000/postgres";
        Connection conn = null;

        try
        {
            //加载驱动。
            Class.forName(driver);
        }
        catch( Exception e )
        {
            e.printStackTrace();
            return null;
        }

        try
        {
            //创建连接。
            conn = DriverManager.getConnection(sourceURL, username, passwd);
            System.out.println("Connection succeed!");
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }

        return conn;
    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        new connectsql();
        connectsql.getConnect("shiyanjiu","openGauss@123");

    }

}

连接成功

在这里插入图片描述

执行查询

我们现在来查询sc表,首先要把sc表的权限给shiyanjiu用户
在这里插入图片描述

GRANT ALL PRIVILEGES ON sc TO shiyanjiu;

之后修改java代码

package opengauss;

import java.sql.*;

public class connectsql {

    //以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。
    public  static Connection getConnect(String username, String passwd)
    {
        //驱动类。
        String driver = "org.postgresql.Driver";
        //数据库连接描述符。
        String sourceURL = "jdbc:postgresql://192.168.56.124:26000/db_cc";
        Connection conn = null;

        try
        {
            //加载驱动。
            Class.forName(driver);
        }
        catch( Exception e )
        {
            e.printStackTrace();
            return null;
        }

        try
        {
            //创建连接。
            conn = DriverManager.getConnection(sourceURL, username, passwd);

            Statement stmt = null;
            // 执行查询
            stmt = conn.createStatement();
            String sql;
            sql = "select * from SC;";
            ResultSet rs = stmt.executeQuery(sql);

            // 展开结果集数据库
            while(rs.next()){
                // 通过字段检索
                String sno = rs.getString("sno");
                String cno = rs.getString("cno");
                int grade = rs.getInt("grade");

                // 输出数据
                System.out.print("sno: " + sno);
                System.out.print("cno: " + cno);
                System.out.print("grade: " + grade);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();


            System.out.println("Connection succeed!");
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }

        return conn;
    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        new connectsql();
        connectsql.getConnect("shiyanjiu","openGauss@123");

    }

}

运行:
在这里插入图片描述

  • 16
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: OpenGauss-JDBC是一个Java数据库连接器,专门用于连接和操作OpenGauss数据库OpenGauss是一种高性能、高可靠性的关系型数据库管理系统,由华为公司开发,它具有良好的扩展性和容错性,在企业级应用中得到了广泛应用。 OpenGauss-JDBC的主要特点是速度快、安全性高、稳定性好和易于使用。它支持多种数据类型、运算符和函数,并且具有完整的事务管理功能和高级安全性特性。此外,OpenGauss-JDBC支持最新版的JDBC标准,可以与任何兼容JDBC的应用程序集成,包括Java Web应用程序、企业应用程序和数据分析应用程序。同时,OpenGauss-JDBC也提供了完整的SQL语法支持,可以访问OpenGauss数据库的所有数据和对象。 OpenGauss-JDBC还提供了一个良好的性能,使用Connection Pooling技术来缓存数据库连接,减少连接时间和开销。此外,它还支持批量操作和预编译语句、分布式事务和连接池调整等高级特性,使得开发人员可以轻松构建高性能的应用程序。 总之,OpenGauss-JDBC是一个非常强大的Java数据库连接器,它提供了丰富的功能和高性能,可以帮助企业轻松构建和管理OpenGauss数据库系统。 ### 回答2: opengauss-jdbc是一个Java数据库连接工具,它可以让Java程序能够与开源数据库opengauss进行交互和通讯。opengauss是面向企业级应用场景的高性能、高可靠、安全可信的开源数据库,同时支持传统SQL与融合分析与数据智能的全面能力。作为一个数据库连接工具,opengauss-jdbc支持多种连接方式和协议,如JDBC、ODBC、PgJDBC和libpq等,可以让Java程序员在编写数据应用程序时更加方便和高效地访问opengauss数据库opengauss-jdbc提供了大量的功能和API,如支持SQL语句的执行、批量操作、自定义数据类型、数据池管理、错误处理等。此外,opengauss-jdbc还提供了可自定义的参数和驱动程序设置,可以进行优化和提高系统性能。opengauss-jdbc还支持SSL协议等安全机制,可以保证安全性和数据完整性。 总之,opengauss-jdbc是一个强大的Java数据库连接工具,它使得Java程序员可以更加方便、高效和可靠地与opengauss数据库进行数据交互和管理。同时,它还为企业级应用提供了高性能、高可靠、安全可信的数据管理解决方案。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiaki_0ff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值