OpenHarmony开源社区
直播中

李明

7年用户 1219经验值
私信 关注
[问答]

鸿蒙应用java开发,使用jdbc连接云服务器mysql数据库报错怎么解决

鸿蒙应用java开发,使用jdbc连接云服务器mysql数据库出现问题
我自己写了一个连接数据库的demo,代码如下
public class MainAbilitySlice extends AbilitySlice {
    //sql数据库连接字符串
    private static final String URL="jdbc:mysql://服务器的host/cameraDemo?autoReconnect=true&failOverReadOnly=false";
    //sql用户名 和密码 用作连接用
    private static final String USERNAME="root";
    private static final String PWD="123456";
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        Button button = this.findComponentById(ResourceTable.Id_btn_connect);
        button.setClickedListener(component -> {
            new ToastDialog(this).setText("success").show();
            this.getGlobalTaskDispatcher(TaskPriority.DEFAULT).asyncDispatch(() ->{
                // 导入驱动,加载具体驱动类
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
                // Connection connection = DriverManager.getConnection(URL, USERNAME, PWD);
                // 与数据库建立链接并返回连接
                Connection connection = null;
                try {
                    connection = DriverManager.getConnection(URL, USERNAME, PWD);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                //发送sql语句(增删改)
                Statement stmt = null;
                try {
                    stmt = connection.createStatement();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                //实现增删改
                String sql="insert into images values('test', 'tset', 2);";
                //返回增删改几条数据
                int num = 0;
                try {
                    num = stmt.executeUpdate(sql);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                if(num>0)
                    System.out.println("操作成功");
                try {
                    stmt.close();
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            });
        });
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
    }
布局文件在主页面中就只有一个按钮,点击按钮就执行数据插件。但是连接部分的代码在idea中用java跑成功,除了环境不一样鸿外其他都。 ,一直包如下:
Could not create connection to database server. Attempted reconnect 3 times.
我尝试过更换mysql版本尝试过8.x和5.x,但都肯定有相同的错误,但同样在idea中运行。,服务器端故障,或者是数据库密码之类的。请问是什么原因,具体细节可以继续我提问,我会继续补充,谢谢各位大佬!

回帖(1)

张强

2022-4-2 10:55:11
看下你和这个帖子主配置是不是一样?不过他最后好像放弃了直接连Mysql。

我觉得可以尝试将url中的&符号需要转义成&尝试,

=> jdbc:mysql://localhost:3306/mybatis?

useSSL=true&useUnicode=true&characterEncoding=utf8&ser​​verTimezone=UTC
举报

更多回帖

发帖
×
20
完善资料,
赚取积分