黑马程序员技术交流社区
标题:
myeclips 连接 mysql 报ClassNotFoundException错误
[打印本页]
作者:
nuoxi0318
时间:
2013-7-29 21:48
标题:
myeclips 连接 mysql 报ClassNotFoundException错误
本帖最后由 nuoxi0318 于 2013-7-31 07:55 编辑
import java.sql.*;
/**
* 第一个 JDBC 的 HelloWorld 程序, 数据库访问MySQL.
*
*
*/
public class test {
public static void main(String[] args) {
// 1. 注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// Mysql 的驱动
// 先定义变量,后使用和关闭
Connection conn = null;// 数据库连接
Statement stmt = null;// 数据库表达式
ResultSet rs = null;// 结果集
try {
conn = java.sql.DriverManager
.getConnection(
"jdbc:mysql://localhost:3306:MySQL","root", "frank");// root是用户名,密码为空
// 3. 获取表达式
stmt = conn.createStatement();
// 执行插入数据的 SQL
int row = stmt
.executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");
row = stmt
.executeUpdate("insert into Student(username,password, age) values('贝贝', '1111', 27)");
System.out.println("插入了 " + row);
// 4. 执行 SQL
rs = stmt.executeQuery("select * from Student");
// 5. 显示结果集里面的数据
while (rs.next()) {
System.out.println("编号=" + rs.getInt(1));
System.out.println("学生姓名=" + rs.getString("username"));
System.out.println("密码=" + rs.getString("password"));
System.out.println("年龄=" + rs.getString("age"));
}
// 执行删除数据的 SQL, 被删除的记录的ID为7
row = stmt.executeUpdate("delete from student where id = 2");
System.out.println("删除了 " + row);
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 6. 释放资源,建议放在finally语句中确保都被关闭掉了
try {
rs.close();
} catch (SQLException e) {
}
try {
stmt.close();
} catch (SQLException e) {
}
try {
conn.close();
} catch (SQLException e) {
}
}
}
}
复制代码
作者:
黑马李昂
时间:
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包有没有导包
第二:
int row = stmt
29. .executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");
30. row = stmt
31. .executeUpdate("insert into Student(username,password, age) values('贝贝', '1111', 27)");
复制代码
row没有赋初值,,,第二次怎么能引用的呢?
第三:
<p> System.out.println("年龄=" + rs.getString("age"));</p>
复制代码
你在上面插入的年龄是int类型,,但是为什么你检索数据库字段值的时候是rs.getString(“age”)呢?怎么不是rs.getInt("age");
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2