环境
数据库系统:MySQL
IDEA版本:2019.3.2
前言
在蹭Java课时,老师用的office的Access数据库搭建的数据库,而博主用的xampp自带的Mysql搭建的的数据库,不但驱动程序不同,方法也有所差异,若有不对之处,请指出。
使用IDEA自带的Database连接方法(提一下)
问题:时区差异问题
请参考博客
使用代码连接的准备
由于博主和老师用的不是一个驱动(关系见下图)
所以需要自行下载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;