相同的两个东东一个对一个错(高手,低手都...完了csdn出错上次的)

jspxnet 2001-09-10 03:25:41
我用jsp页连mysql是对的入下
-----------------------------------------------------
<html>
<head>
<title>mysql</title>
</head>
<body>
<%@ page import="java.sql.*" %>
<%
try{
Class.forName("org.gjt.mm.mysql.Driver");
//加载 mm.mysql.driver
} catch (java.lang.ClassNotFoundException e)
//如果加载时出错,给出相应的错误信息
{
out.print("Class not found exception occur. Message is:");
out.print(e.getMessage());
}

try{
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cydb?user=root;password=");
//创建数据库联接,这样的做法类似于M$的ASP中的创建数据库联接。
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO worker_cy (name,adress) VALUES ('CAYU','gg");
//执行插入数据的操作

rs = stmt.executeQuery("SELECT name,adress FROM worker_cy");
//把数据库中所有的数据读出来
while (rs.next())
{
String s1 = rs.getString(1);
String s2 = rs.getString(2);
out.println("col1="+s1+"--col2="+s2+"br");
//打印所显示的数据
}
} catch (SQLException e) {
//如果SQL语句执行的过程中出错,则显示出相应的错误信息
out.print("SQL Exception occur. Message is:");
out.print(e.getMessage());
}
%>
</body>
</html>
-----------------------------------------------
但我用EJB连mysql就不对了
----------------------------------------------
package Query;
import java.sql.*;
import java.util.*;

public class MySQL_Query{

Connection con = null;
Statement stmt = null;
ResultSet result = null;

//------------>连接数据库
public boolean Open() {
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cydb?user=root;password=");
stmt = con.createStatement();
//加载 mm.mysql.driver
} catch (java.lang.ClassNotFoundException e)
//如果加载时出错,给出相应的错误信息
{
System.err.print("Class not found exception occur. Message is:");
System.err.print(e.getMessage());
return false;
}
return true;
}

//------------>执行查询返回为记录
public ResultSet Query(String sql)
{
ResultSet result = null;
try{
//执行插入数据的操作
result = stmt.executeQuery(sql);
} catch (SQLException e) {
//如果SQL语句执行的过程中出错,则显示出相应的错误信息
System.err.print("SQL Exception occur. Message is:");
System.err.print(e.getMessage());
result = null;
}
return result;
}

//--------------->更新数据
public boolean Update(String sql)
{
try
{
stmt.executeUpdate(sql);
}
catch(SQLException e)
{
System.err.println("Update(): " + e.getMessage());
return false;
}
return true;
}

//---------------->关闭连接
public boolean Close()
{
try
{
stmt.close();
con.close();
}
catch(SQLException e)
{
System.err.println("query(): " + e.getMessage());
return false;
}
return true;
}
}
---------------------------------------------------------
错误入下
--------------------------------------------------------
500 Servlet Exception
e:\web\WEB-INF\classes\Query\MySQL_Query.java:15: 异常 java.sql.SQLException
必须被捕获,或在此方法的 throws 子句中被声明。
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cydb?user=root;password=");

^
1 个错误
--------------------------------------------------------------------------------
Resin 2.0.2 (built Mon Aug 27 16:52:49 PDT 2001)

----------------------------------------------------
cydb是我建的一个数据库.jsp连接是正确的.为什么EJB不对了
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jspxnet 2001-09-10
  • 打赏
  • 举报
回复
小问题-----真功夫
think?
vdragon 2001-09-10
  • 打赏
  • 举报
回复
在EJB中:
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cydb?user=root;password=");
stmt = con.createStatement();
//加载 mm.mysql.driver
} catch (java.lang.ClassNotFoundException e)
这个地方你只捕获了Class.forName可能产生的ClassNotFoundException,而没有捕获con=DriverManager.getConnection可能产生的SQLException,所以会出错

而在你的jsp中
try{
Class.forName("org.gjt.mm.mysql.Driver");
//加载 mm.mysql.driver
} catch (java.lang.ClassNotFoundException e)
这里的try...catch中异常捕获是对的,同时你把con=DirverManager.getConnection这一段可能产生SQLException的语句放在了后面一个try...catch(SQLException e)中了,当然就可以正常运行了。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧