Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.driver at java.base/jdk

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/skyejy/article/details/84305259