1.要先去MySQL官网下载connector
1. 就是jar包,注意,必须是和当前你的MySQLbanb一致的,一模一样的!!!
2. 特别注意】如果以上错误都不是,还有一种常见错误,就是jre1.8.0_162\lib\ext目录下没有加入jar包,解决办法很简单,将mysql-connector-java.jar包复制到JDK所在位置\jre1.8.0_162\lib\ext目录下即可
3. 注意格式。
(1)URL格式不对:正确为
Connectionconn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/XX”,“root”,“XXXX”)
(2)驱动字符串出错(com.mysql.jdbc.Driver)
(3)Classpath中没有加入合适的mysql_jdbc驱动
可以通过看info,看版本是否匹配。
2.附上测试连接代码
package com.company;
import java.sql.*;
public class Main {
private static Connection con; //声明 Connection 对象
private static PreparedStatement pStmt;//声明预处理 PreparedStatement 对象
private static ResultSet res;//声明结果 ResultSet 对象
private static String url = "jdbc:mysql://localhost:3306/dbtest";// 协议:子协议://目标IP地址:端口/数据库 在这里test1是之前创建的数据库名
private static String user = "root";
private static String password = "123456";
public Connection getConnection() {//建立返回值为 Connection 的方法
//代码块(1):加载数据库驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//代码块(2):通过访问数据库的URL获取数据库连接对象
try {
con = DriverManager.getConnection(url,user,password);
System.out.println("数据库连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
Main h = new Main();//创建本类对象
con = h.getConnection();//与数据库建立连接
queryData();// 查询数据
/*addData(); 增添数据
updateData();//更新数据
deleteData();//删除数据
*/
}
public static void queryData() {
try { //mysql查询语句
String sql = "SELECT * FROM student";
//代码块(4):得到结果集
pStmt = con.prepareStatement(sql);
res = pStmt.executeQuery();
while (res.next()) {//如果当前语句不是最后一条,则进入循环
//代码块(5):展示数据集
System.out.println(res.getString("Name") + " "
+ res.getString("Email") +
" " + res.getString("Age"));
}
res.close();//释放资源
pStmt.close();
} catch (SQLException e) {//捕获异常
e.printStackTrace();
}
}
public static void addData() {//添加数据操作
try {
//pStmt = con.prepareStatement
pStmt = con.prepareStatement("insert into student (Name, Email,Age) values('熊二','Sean1991',29)");
pStmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void updateData() {//更新数据操作
try {
pStmt = con.prepareStatement("update student set 姓名 = '五号病人' where Age = 19");
// pStmt.setString(1, "周礼");通配符
pStmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void deleteData() {//删除数据操作
try {
Statement stmt = con.createStatement();//创建Statement对象
stmt.executeUpdate("delete from student where 学号=4");
} catch (Exception e) {
e.printStackTrace();
}
}
}