黑马程序员技术交流社区

标题: myeclips 连接 mysql 报ClassNotFoundException错误 [打印本页]

作者: nuoxi0318    时间: 2013-7-29 21:48
标题: myeclips 连接 mysql 报ClassNotFoundException错误
本帖最后由 nuoxi0318 于 2013-7-31 07:55 编辑
  1. import java.sql.*;

  2. /**
  3. * 第一个 JDBC 的 HelloWorld 程序, 数据库访问MySQL.
  4. *
  5. *
  6. */
  7. public class test {
  8.         public static void main(String[] args) {
  9.                 // 1. 注册驱动
  10.                 try {
  11.                         Class.forName("com.mysql.jdbc.Driver");
  12.                 } catch (ClassNotFoundException e) {
  13.                         // TODO Auto-generated catch block
  14.                         e.printStackTrace();
  15.                 }// Mysql 的驱动
  16.                 // 先定义变量,后使用和关闭
  17.                 Connection conn = null;// 数据库连接
  18.                 Statement stmt = null;// 数据库表达式
  19.                 ResultSet rs = null;// 结果集
  20.                 try {
  21.                         conn = java.sql.DriverManager
  22.                                         .getConnection(
  23.                                                         "jdbc:mysql://localhost:3306:MySQL","root", "frank");// root是用户名,密码为空
  24.                         // 3. 获取表达式
  25.                         stmt = conn.createStatement();
  26.                         // 执行插入数据的 SQL
  27.                         int row = stmt
  28.                                         .executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");
  29.                         row = stmt
  30.                         .executeUpdate("insert into Student(username,password, age) values('贝贝', '1111', 27)");
  31.                         System.out.println("插入了 " + row);
  32.                         // 4. 执行 SQL
  33.                         rs = stmt.executeQuery("select * from Student");
  34.                         // 5. 显示结果集里面的数据
  35.                         while (rs.next()) {
  36.                                 System.out.println("编号=" + rs.getInt(1));
  37.                                 System.out.println("学生姓名=" + rs.getString("username"));
  38.                                 System.out.println("密码=" + rs.getString("password"));
  39.                                 System.out.println("年龄=" + rs.getString("age"));
  40.                         }
  41.                         // 执行删除数据的 SQL, 被删除的记录的ID为7
  42.                         row = stmt.executeUpdate("delete from student where id = 2");
  43.                         System.out.println("删除了 " + row);
  44.                 } catch (SQLException e) {
  45.                         e.printStackTrace();
  46.                 } finally {
  47.                         // 6. 释放资源,建议放在finally语句中确保都被关闭掉了
  48.                         try {
  49.                                 rs.close();
  50.                         } catch (SQLException e) {
  51.                         }
  52.                         try {
  53.                                 stmt.close();
  54.                         } catch (SQLException e) {
  55.                         }
  56.                         try {
  57.                                 conn.close();
  58.                         } catch (SQLException e) {
  59.                         }
  60.                 }
  61.         }
  62. }
复制代码

作者: 黑马李昂    时间: 2013-7-29 23:52
错误可能产生的原因:
1. Class.forName("com.mysql.jdbc.Driver");
    mysql的驱动jar包有没有加?
2.com.jdbc.mysql.Driver驱动类写错了吧?
作者: 张云杰    时间: 2013-7-29 23:59
Class.forName("com.mysql.jdbc.Driver");  明显错了
作者: 胡玉勉    时间: 2013-7-30 11:28
空指针异常,最后复制一下控制台报错消息
作者: 杨兴庭    时间: 2013-7-30 23:02
你的代码我没跑因为我没你的数据库,粗略看下可能是这几个小问题:
第一:我不知道你的数据库驱动jar包有没有导包

第二:
  1. int row = stmt

  2. 29.                                        .executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");

  3. 30.                        row = stmt

  4. 31.                        .executeUpdate("insert into Student(username,password, age) values('贝贝', '1111', 27)");

复制代码
row没有赋初值,,,第二次怎么能引用的呢?

第三:

  1. <p>                      System.out.println("年龄=" + rs.getString("age"));</p>
复制代码
你在上面插入的年龄是int类型,,但是为什么你检索数据库字段值的时候是rs.getString(“age”)呢?怎么不是rs.getInt("age");






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2