Java连接MySql之路

 

       最近想了解一点这方面的知识,于是自己就去装了一个MySql,原因在于听说MySql比较简单一点,然后呢开源免费。先插上两张图在说话

                       (a)                                                                                              (b)

        我装的MySql是最新的8.0.19,环境变量的配置就不说了,在命令行是可以工作的,我在局域网的另外一台机器上装了Navicat也是可以正常操作该服务器的。在用java连接数据库的路上出现了一些插曲。我用C#也试了,也出现问题。在这记录一下这些问题。

        

        首先的我需要贴上代码。

    public static void main(String[] args){
        System.out.println("开始连接...");
        Connection con = null;
        String driver = "com.mysql.cj.jdbc.Driver";
        String URL= "jdbc:mysql//localhost:3306/run";
        String user = "root";
        String password = "xy123456";
        try{
            Class.forName(driver);
            System.out.println("连接数据库...");
            con = DriverManager.getConnection(URL,user,password);
            System.out.println("连接成功");
        }catch(Exception e){
            e.printStackTrace();
        }
    }

       上述代码是存在问题的,稍后再说。代码写好了,在连接数据库之前还需要一样东西,就是连接服务器的驱动,就是图a中的mysql驱动。驱动有很多个版本,建议是和数据库同一个版本,我开始用的不是一个版本,在测试的时候也能连接同事的数据库。所以说是建议同个大版本。

        https://www.cnblogs.com/taoweiji/archive/2012/12/11/2812295.html 这里介绍了装驱动的方法。

         准备结束,执行程序。出错如下:

         

        然后就只好google了,下面是我翻出来的一些方法。基本上都说是三个问题:
        一是:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
        二是:驱动字符串出错(com.mysql.jdbc.Driver)
        三是:没装或者装错了驱动

        很自信的越过了第一条和第二条,然后就在第三条上死磕,显示我是装了驱动,版本不对?于是下载新的驱动,还是不行。驱动装的方式不对?各种装驱动的方法都试了还是不行。我甚至重装了MySql。最后的最后发现上述代码中的url是不对的,在mysql后面少了个:。然并还是涛声依旧。然后我将url写成如下:

        String URL= "jdbc:mysql//localhost:3306/run?useSSL=false&serverTimezone=UTC";完美连接了

        经过几次测试发现 serverTimezone=UTC 这个设置不能少,当然不同版本的数据库设置可能不同。UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。最后的代码如下

    public static void main(String[] args){
        System.out.println("开始连接...");
        Connection con = null;
        String driver = "com.mysql.cj.jdbc.Driver";
        String URL= "jdbc:mysql://localhost:3306/run?useSSL=false&serverTimezone=UTC";
        String user = "root";
        String password = "xy123456";
        try{
            Class.forName(driver);
            System.out.println("连接数据库...");
            con = DriverManager.getConnection(URL,user,password);
            System.out.println("连接成功");
        }catch(Exception e){
            e.printStackTrace();
        }
    }

             执行通过

             

             

 

 

 

 

 

 

 

 

 

           

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值