关于JDBC连接及驱动
最近web学到了JDBC,于是需要用java连接MySQL,本来已经成功连接了,代码如下:
创建数据库、表,插入信息:
show databases ;
create database databaseForLesson;
use databaseForLesson;
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
email varchar(50) NOT NULL,
dob date DEFAULT NULL,
PRIMARY KEY (stud_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
insert into students(stud_id,name,email,dob)
values (1,'Student1','student1@gmail.com','1983-06-25');
insert into students(stud_id,name,email,dob)
values (2,'Student2','student2@gmail.com','1983-06-25');
select * from STUDENTS;
连接:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Scr {
String databaseName = "databaseForLesson";
String user = "root";
String pwd = "root";
String URL;
String DRIVER;
public Scr() {
this.URL = "jdbc:mysql://localhost:3306/" + this.databaseName + "?useSSL=false&serverTimezone=UTC";
this.DRIVER = "com.mysql.cj.jdbc.Driver";
}
public static void main(String[] args) {
Scr JdbcDemo = new Scr();
JdbcDemo.connect();
}
public void connect() {
Connection connection = null;
Statement statement = null;
try {
Class.forName(this.DRIVER);
connection = DriverManager.getConnection(this.URL, this.user, this.pwd);
statement = connection.createStatement();
String query = "SELECT * FROM students;";
ResultSet resultSet = statement.executeQuery(query);
while(resultSet.next()) {
String dob = resultSet.getString("dob");
String name = resultSet.getString("name");
int id = resultSet.getInt("id");
String email = resultSet.getString("email");
System.out.println("id:"+id+",name: " + name +",age: " + dob + ",address: " + email);
}
resultSet.close();
statement.close();
connection.close();
} catch (ClassNotFoundException | SQLException var16) {
var16.printStackTrace();
} finally {
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException var15) {
var15.printStackTrace();
}
}
}
}
发生如下错误:
百度了很多,看了很多解决方法,大致就是驱动的问题,一开始下载了mysql-connector-java-5.1.25-bin.jar,发现还是不行,于是看了下我的MySQL版本是8,所以又去官网下载了最新的驱动mysql-connector-java-8.0.28.jar,再配置后得以解决。
下载驱动网址:MySQL驱动
得到如下页面:
选择zip文件,点击Download
点击thanks直接开始下载
将压缩包解压后得到一个内含如下文件的文件夹,其中.jar压缩包就是我们需要用到的
在IDEA中添加驱动包:File->Project Structure->Modules->Dependencies,然后添加驱动包
重新测试,运行成功!