数据库实验九--OpenGauss(使用JDBC连接数据库)
本文作者:
https://www.cnblogs.com/Ck-0ff/【Ck_0ff】
实验要求
了解如何使用JDBC连接数据库。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。openGauss库提供了对JDBC 4.0特性的支持,需要使用JDK1.8版本编译程序代码。
完成以下内容:
- 在openGauss中创建数据库、表;
- 使用jdbc连接到新创建的数据库;
- 在java程序中改变数据库中的值或者输出数据库中的值;
- 请参考华为提供的实验手册: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"
另外,我们还需修改postgresql.conf
和pg_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");
}
}
运行:
本文来自作者:CK_0ff,转载请注明原文链接:https://www.cnblogs.com/Ck-0ff/p/16288709.html