Java在IDEA软件下连接Mysql的几个问题和解决方法

环境

 数据库系统:MySQL
 IDEA版本:2019.3.2

前言

在蹭Java课时,老师用的office的Access数据库搭建的数据库,而博主用的xampp自带的Mysql搭建的的数据库,不但驱动程序不同,方法也有所差异,若有不对之处,请指出。

使用IDEA自带的Database连接方法(提一下)
问题:时区差异问题
请参考博客https://blog.csdn.net/chencheng1997/article/details/89399126?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
使用代码连接的准备

由于博主和老师用的不是一个驱动(关系见下图)
在这里插入图片描述
所以需要自行下载jdbc的驱动链接: 下载驱动地址.
下载并解压缩在这里插入图片描述让后把解压缩出来的文件
在这里插入图片描述
添加到IDEA的File->Projiect Structure->modules中在这里插入图片描述
如果可以看见图中情况说明添加驱动成功
在这里插入图片描述

实操环节

上代码

import java.sql.*;

/**
 * Creat By xiao on 2020/4/10
 * 功能:连接数据库,测试查询功能
 **/
public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        //声明变量
        String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
        String user="xiao";
        String password="20001107x";
        Connection connection = null;//声明并初始化引用变量
        Statement statement = null;//声明并初始化引用变量
        String contactID;
        String name;
        String Diver = "com.mysql.cj.jdbc.Driver";

        //生成查询语句
        String sqlx = "select contactID,name from contactT";

        //连接数据库并执行查询语句、释放连接进程
        try {
            //1.装载Jdbc-odbc bridge drive  ACESS数据库
            //mysql用mysql.jdbc.Driver
            Class.forName(Diver);
            //2.连接数据库
            connection = DriverManager.getConnection(url,user,password);
            if (!connection.isClosed())
                System.out.println("数据库连接成功");
        } catch (ClassNotFoundException e){
            System.out.println("数据库驱动没有安装");
        } catch (SQLException e) {
            System.out.println("数据库连接失败");
        }

        //3.创建一个Statement的实例
        statement = connection.createStatement();

        //4.执行sql语句查询
        ResultSet resultSet = statement.executeQuery(sqlx);

        //5.从结果集rs中读取数据
        while (resultSet.next()){
            contactID = resultSet.getString("contactID");
            name = resultSet.getString("name");
            //显示读取的数据
            System.out.println(contactID+","+name);
        }

        //6.关闭结果集
        resultSet.close();

        //7.关闭连接
        connection.close();
    }
}

注意事项

1.开始博主用的驱动是com.mysql.cj.jdbc.Driver,但IDEA推荐用com.mysql.cj.jdbc.Driver,这个建议采用
2.如果你和博主一样用的xampp,非常建议安装在C盘下面,不然可能某天就突然遇到意料之外的错误崩掉了
-mysql服务不能运行常见几个问题和解决方法

  • 端口占用:kill掉占用进程或者改运行端口,找ini文件改,很可能被你之前安装的mysql挤掉了
  • 配置问题:ini文件下的目录有问题
  • 没有错误日志但就是无法运行:网上大部分方法不管用,比如删除xampp/mysql/data下的ibtmp1,你的sql服务可能还是重启不了,但你的数据文件一定会丢失!!!博主就是跟网上搞了半天后面还是重装的xampp(吐了)

3。如果IDEA给你一堆红线,%80是由于你偷懒没有用try语句捕获异常,别偷懒
4.如果用户名和密码都是对的而且成功用IDEA自带的Database连接上了,但还是抛出数据库连接失败的异常,你有没有想过,数据库连接失败的原因是不是也是时区异常的问题呢?这就是为什么博主用

String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

而不是直接用

String url="jdbc:mysql://localhost:3306/test;

的原因。

博主也是菜鸟一枚,如果有说错的,还望指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖半仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值