。1234 2019-11-22 11:45 采纳率: 0%
浏览 374

封装连接数据库的代码。

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条回答 默认 最新

  • 毕小宝 博客专家认证 2019-11-22 11:51
    关注

    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

    评论

报告相同问题?

悬赏问题

  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效