版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skyejy/article/details/84305259
Eclipse下javal连数据库一直报这个错。由于我用的是新版的MySQL,所以经常遇见些奇奇怪怪的错……
坑在这里:
错误代码:Class.forName("com.mysql.jdbc.driver");
Driver要大写!!!
正确的代码:
package testjdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String args[]) throws ClassNotFoundException
{
//连接mysql数据库,连接其他的数据库需要改变格式
String url = "jdbc:mysql://localhost:3306/mycompany";
String user ="";//替换成你自已的数据库用户名
String password = "";//这里替换成你自已的数据库用户密码
String sqlStr = "select ID,Name,Department from person";
String sqlInsert = "insert into person " +"VALUES (88, 'May', 'R&D')";
String sqlUpdate = "update person " +"set Department = 'Marketing' where ID in (1,3)";
try{ //异常处理语句是必需的.否则不能通过编译!
Class.forName("com.mysql.jdbc.Driver");
System.out.println( "加载驱动成功!" );
Connection con = DriverManager.getConnection(url, user, password);
System.out.println( "连接数据库成功!" );
Statement st = con.createStatement();
System.out.println( "创建Statement成功!" );
//添加数据
st.executeUpdate(sqlInsert);
System.out.println("添加新数据成功");
//更新数据
st.executeUpdate(sqlUpdate);
System.out.println("更新数据成功");
//查询数据
ResultSet rs = st.executeQuery( sqlStr );
System.out.println( "查询数据操作成功!" );
System.out.println( "----------------!" );
while(rs.next())
{
System.out.print(rs.getString("ID") + " ");
System.out.print(rs.getString("Name") + " ");
System.out.println(rs.getString("Department"));
}
rs.close();
st.close();
con.close();
}
catch(SQLException e){
System.out.println("ErrorCode:"+e.getErrorCode());
System.out.println("SQLState:"+e.getSQLState());
System.out.println("reason:"+e.getMessage());
}
}
}
这样运行后还会有一个错:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
因此,需要将com.mysql.jdbc.Driver(已被弃用)改成com.mysql.cj.jdbc.Driver