封装连接数据库的代码。

package util;
/*
JDBC工具类:
所有的方法都是静态的,方便调用
*/

import java.sql.*;

public class JDBCUtils {
private static Connection conn;
Statement stmt = null;
ResultSet rs = null;
public static Connection getCon() {
//数据库连接名称
String username = "user";
//数据库连接密码
String password = "password";
String driver = "driver";
//其中kaorou为数据库名称
String url = "url";
try {
Class.forName(driver);
conn = (Connection) DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//
public void closere(){
if (stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

/*
资源文件
*/
url=jdbc:mysql://kaorou
user=root
password=root
driver=com.mysql.jdbc.Driver

//执行类文件
package servlet;

//一个包里的代码直接用,其他包里的如下:
import util.JDBCUtils;
import java.sql.*;

public class a {
private static int count;
private Connection conn = null;
private Statement stmt = null;

public static void main(String[] args) throws SQLException {
    JDBCUtils jd = new JDBCUtils();
    a zhu = new a();
    zhu.ab();
    jd.closere();

}
public static void ab() throws SQLException {
    String sql = "update user set age = 15 where id = 1 ";
    //获取执行sql的对象Statement
    Connection conn = JDBCUtils.getCon();
    Statement stmt = conn.createStatement();
    int count = stmt.executeUpdate(sql);//影响行数
    System.out.println(count);
}

}

报错:
java.lang.ClassNotFoundException: driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at util.JDBCUtils.getCon(JDBCUtils.java:22)
at servlet.a.ab(a.java:24)
at servlet.a.main(a.java:17)
Exception in thread "main" java.lang.NullPointerException
at servlet.a.ab(a.java:25)
at servlet.a.main(a.java:17)

Process finished with exit code 1

//我太菜了,百度也实在解决不了,拜托各位大佬帮我解答一下,谢谢!

2个回答

driver 驱动不是瞎写的,而是固定的几种跟数据库对应的 JDBC 驱动的 jar 包。
MySQL 的驱动名称为 com.mysql.jdbc.Driver,jar 包为 mysql-connector-java-5.0.0-beta-bin.jar
https://blog.csdn.net/superxiaolong123/article/details/70196651

你这资源文件的那些属性根本没赋值到代码中

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问