引言
MogDB是一款商业版关系型数据库管理系统,它提供了强大的功能和性能,可以满足各种企业级应用的需求。与此同时,JDBC(Java Database Connectivity)是Java语言中用于连接和操作关系型数据库的标准API。它提供了一组接口和类,使得Java程序可以通过标准的SQL语句来访问和操作关系型数据库。本文将介绍如何在银河麒麟桌面操作系统进行MogDB的JDBC数据源配置。
环境准备
虚拟机:VMware 17 pro
架构:x86_64
源端系统:OpenKylin 1.0.1 (https://www.openkylin.top/downloads/index-cn.html)
JDK:JDK8 (https://www.oracle.com/java/technologies/downloads/#java8)
驱动:openGauss-3.0.3-JDBC (https://opengauss.org/zh/download/archive/)
目标端数据库版本:MogDB 3.0.3
配置实践
1.安装JDK
上传JDK8软件包到服务器并解压到/home/lukai/jdk8mkdir ~/jdk8
tar -zxvf jdk-8u361-linux-x64.tar.gz -C ~/jdk8/
#配置环境变量
echo 'export JAVA_HOME=/home/lukai/jdk8/jdk1.8.0_361
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH'>>~/.bashrc
source ~/.bashrc
#验证
java -version

2.配置opengauss的JDBC相关驱动

上传到openkylin服务器后解压到家目录下的openGauss_JDBC_LIB文件夹下
cd ~
mkdir openGauss_JDBC_LIB
tar -zxvf openGauss-3.0.3-JDBC.tar.gz -C openGauss_JDBC_LIB
lukai@OpenKylin:~/jdk8/jdk1.8.0_361/lib$ cd ~/openGauss_JDBC_LIB/
lukai@OpenKylin:~/openGauss_JDBC_LIB$ ll
总用量 1688
drwxrwxr-x 2 lukai lukai 4096 10月 23 17:43 ./
drwxr-xr-x 38 lukai lukai 4096 10月 23 17:39 ../
-rw------- 1 lukai lukai 844852 1月 10 2023 opengauss-jdbc-3.0.0.jar
-rw------- 1 lukai lukai 845892 1月 10 2023 postgresql.jar
-rw------- 1 lukai lukai 6925 1月 10 2023 README_cn.md
-rw------- 1 lukai lukai 8998 1月 10 2023 README_en.md
3.编写java文件
vi a.java
import java.sql.*;
import org.postgresql.Driver;
public class a {
static final String JDBC_DRIVER = "org.postgresql.Driver";
static final String DB_URL = "jdbc:postgresql://192.168.57.130:15400/postgres";
static final String USER = "lukai";//数据库用户名
static final String PASS = "Enmotech@123";//数据库密码
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// DDL-CREATE
stmt = conn.createStatement();
String sql;
sql = "CREATE TABLE lk_jdbc_test(id int primary key, col1 varchar(8))";
boolean i = stmt.execute(sql);
if (i ) System.out.println(sql + "表已经创建成功!");
// DML-INSERT
stmt = conn.createStatement();
sql = "INSERT INTO lk_jdbc_test VALUES (1,'lu'),(2,'kai')";
stmt.executeUpdate(sql);
System.out.println(sql + "已经创建成功!");
// DML-DELETE
stmt = conn.createStatement();
sql = "DELETE FROM lk_jdbc_test WHERE ID=2";
stmt.executeUpdate(sql);
System.out.println(sql + "已经创建成功!");
// DML-UPDATE
stmt = conn.createStatement();
sql = "UPDATE lk_jdbc_test SET ID=3 WHERE ID=1";
stmt.executeUpdate(sql);
System.out.println(sql + "已经创建成功!");
// DQL
stmt = conn.createStatement();
sql = "SELECT * from lk_jdbc_test";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
System.out.printf("%-10s%-10s","id","col1");
System.out.println();
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String col1 = rs.getString("col1");
// 输出数据
System.out.printf("%-10d",id);
System.out.printf("%-10s",col1);
System.out.println();
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
se2.printStackTrace();
}
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
}
4.编译java文件
lukai@OpenKylin:~/openGauss_JDBC_LIB$ pwd
/home/lukai/openGauss_JDBC_LIB
#-cp 后接参数指定依赖库搜索路径,多路径用冒号分割(windos用分号分割)
lukai@OpenKylin:~/openGauss_JDBC_LIB$ javac -cp ./postgresql.jar: a.java
5.数据库服务端配置
gs_om -t start
#添加openkylin所在主机ip
gs_guc reload -N all -I all -h "host all all xx.xx.xx.xx/32 md5"
gs_guc reload -N all -I all -c "listen_addresses='*'"
#创建lukai用户
gsql>create user lukai with password 'Enmotech@123';
gsql>grant all privileges to lukai;
6.运行java文件
lukai@OpenKylin:~/openGauss_JDBC_LIB$ java -cp ./postgresql.jar: a
十月 23, 2023 10:12:25 上午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [68eb4bba-a730-43a2-b47b-fee067abeec1] Try to connect. IP: 192.168.57.130:15400
十月 23, 2023 10:12:25 上午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [192.168.57.118:58082/192.168.57.130:15400] Connection is established. ID: 68eb4bba-a730-43a2-b47b-fee067abeec1
十月 23, 2023 10:12:25 上午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: Connect complete. ID: 68eb4bba-a730-43a2-b47b-fee067abeec1
INSERT INTO lk_jdbc_test VALUES (1,'lu'),(2,'kai')已经创建成功!
DELETE FROM lk_jdbc_test WHERE ID=2已经创建成功!
UPDATE lk_jdbc_test SET ID=3 WHERE ID=1已经创建成功!
id col1
3 lu
-cp 后接参数指定依赖库搜索路径,多路径用冒号分割(windos用分号分割),且在运行文件时即使只有一个搜素路径也需要加上分隔符
实验总结
JDBC连接成功后可以使用JDBC提供的一组标准的接口函数来执行SQL查询和操作。
通过使用JDBC接口,可以在MogDB中实现高效的数据访问和跨平台连接。这种灵活性和可扩展性使得MogDB与ODBC的结合成为了开发企业级应用和在多平台上连接数据库的理想选择。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




