IDEA用代码连接到阿里云数据库PolarDB

这两天在跟着学做一个人脸识别的小项目,是在IDEA上实现的,数据库用的是一个我以前没碰过的新东西,是阿里云的云数据库PolarDB。它是云原生关系型数据库,是阿里巴巴自主研发的下一代云原生关系型数据库,可兼容MySQL、PostgreSQL、高度兼容Oracle语法。

很明显了,作为渣渣的我,啥都不懂,就算是测试下连个数据库都会报错,还一直看不出毛病,今天又重新理了下,看了下,终于算是了解了,是我自己的毛病,傻眼了。还是记录下吧,顺便记录下自己的蠢。

其中我所用的DBUtil在这里,

package com.kaikeba.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class DBUtil {
    private static String url;
    private static String user;
    private static String password;

    static{
    	//加载配置文件
        Properties ppt = new Properties();
        InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
        try {
        	//从配置文件中加载数据库地址,帐号,密码等信息
            ppt.load(is);
            url = ppt.getProperty("url");
            user = ppt.getProperty("user");
            password = ppt.getProperty("password");
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    /**
     * 用于链接数据库,得到的结果是数据库的连接对象,链接对象具备了操作数据库的很多功能。=
     * @return 链接对象
     */
    public static Connection getConn(){

        //1.    获取数据库链接
        try {
            Connection conn = DriverManager.getConnection(url,user,password);
            //3.    将链接返回给工具的使用者
            return conn;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    /**
     * 断开数据库资源的链接,用于释放资源
     * @param conn 要释放链接
     * @param statement 要释放的执行环境
     * @param resultSet 要释放的结果集
     */
    public static void close(Connection conn, Statement statement, ResultSet resultSet){
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(statement != null){
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(resultSet != null){
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

}

先放张图,新建一个Web Application项目,里头东西是这些。
图1
其中src中的util包不用管,我用来测试的只有那个test包,里头的程序也很简单,如下所示。

package com.kaikeba.test;

import com.kaikeba.util.DBUtil;

import java.sql.Connection;

public class Test1 {
    public static void main(String[] args) {
        Connection con=DBUtil.getConn();
    }
}

其中db.properties是个配置文件,里面放的是链接到我的PolarDB的内容,包括url,用户名和密码。内容如下。
图2

但我运行这个测试程序的时候,报错了,如下:
图3
首先,先来明确下,在这个db的配置文件中,user和password不用多说了,就是你PolarDB创建高权限用户的账号和密码。

我划线画出来的,是放自己的集群地址的公网地址,下图中我划圈的地方,直接复制过去即可。

对了,在此之前,别忘记了把自己当前电脑的ip地址添加到集群白名单里,图里的左侧可以找到的。如果要搜自己电脑的ip,给个最简单的方法,直接浏览器输入ip搜索,即可找到自己的电脑对应的ip。
图4
到这里都没问题的话,我的问题点出来了,就是第二张图里我圈出来的那里,它指的是此时你数据库里对应的某一个数据库库名。当我们登录这个云数据库时,它会默认给我们几个已有的数据库,每个都有自己的数据库名,当然你也可以在里头导入导出自己的数据。我的数据库名如图所示,
图5
你在第二张圈里的数据库库名也只能是其中的一个,我之前没意识到,结果出错了。

修改之后,保存。再运行,不报错,说明测试成功,已连接到数据库。
图6

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值