java用jdbc连接本地虚拟机上的openGauss数据库

本地跑有openEuler虚拟机上面装的openGauss数据库
java用的eclipse

1.首先加载jdbc驱动从网上下(叫openGauss-1.1.0-JDBC.tar)下下来解压,在eclipse里新建一个项目,创建一个lib文件夹,把刚刚解压的文件复制到lib文件夹下,然后

右击 项目名,依次点击 Build Path > Configure Build Path…
选中 Libraries,点击右边的按钮 add JARs…
选中复制到项目中的jar包
最后点击 Apply and Close 即可

具体参照装mysql的这个教程步骤差不多

2.设置数据库的监听地址和端口

gs_guc set -I all -c "listen_addresses='192.168.0.105'" 

这里listen_addresses就是监听地址了,前三段应该是要跟主机的ip地址前三段一样的,如果虚拟机有两个网卡(我这里是这样)一个用来外部链接(用putty连接)另一个就可以用在这里,比如我的en0s3用来连接putty en0s8就用来连接数据库即把listen_addresses设为en0s8的IP地址192.168.0.105
在这里插入图片描述
这里把命令里面listen_addresses改为port可用来修改端口,如果连接过程中报了端口的错可以试着改一下端口,应该是可以随意改,只要能通过就行。比如我设24000会报错,随意改成5432可以了。
具体参照官方文档配置服务端远程连接

3.配置客户端接入认证

配置客户端认证方式,允许客户端以“jack”用户连接到本机,此处远程连接禁止使用“omm”用户(即数据库初始化用户)。
例如,下面示例中配置允许IP地址为10.10.0.30的客户端访问本机。

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

这里要把ip地址换成本机的ip地址(在cmd中执行ipconfig查看)用户名是进行连接时采用的数据库用户名即用什么身份连接数据库就把这里jack改成什么
比如我的是gs_guc set -N all -I all -h "host all testuser1 192.168.0.109/32 sha256"
在这里插入图片描述
具体参照官方文档配置客户端接入认证

4.写java程序

import java.sql.*; 
public class dbdemo1 {
 
    static final String JDBC_DRIVER = "org.postgresql.Driver"; 
    static final String DB_URL = "jdbc:postgresql://192.168.0.105:5432/postgres?ApplicationName=app1";
      // 这里的ip地址和端口就是前面设置的比如我前面设的监听ip地址是192.168.0.105端口是随便设的5432 postgres是具体数据库的名字其他不变
    static final String USER = "testuser1";//这是连接数据库的用户名,在数据库里注册的
    static final String PASS = "Test@123";//这是密码,在注册用户时自己设置的
     public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);
        
            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
        
            // 执行查询
            System.out.println(" 实例化Statement对象...");
            stmt = conn.createStatement();
            
            //后面就是操作数据库了
            String sql;
            sql = "具体sql语句balabala";
            ResultSet rs = stmt.executeQuery(sql);//查询类的是executeQuery
            int con = stmt.executeUpdate(sql);//更新类的是executeUpdata
            //再后面就是查询结果拆分了

运行java程序应该就OK了

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值