请教高手:初学JSP,写了一个连接数据库的类,但是在JSP引用是有提示“unreported exception java.sql.SQLException;”(但也可以运行成功),还有如何关闭ResultSet呢?先谢谢了!
----DBMYSQLLink.java----------
package xtjc2;import java.util.*;
import java.io.*;
import java.security.MessageDigest;import java.sql.*;
import com.mysql.jdbc.Driver.*;public class DBMYSQLLink {
private String url = "jdbc:mysql://10.17.162.159:3306/xtjc";
private String dbuser = "xtjc";
private String dbpass = "lcw2046";
//发送不返回结果SQL指令方法
public void executeSQL(String sql)throws SQLException{
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
con.close();
} catch (Exception e) {
}
}
//发送返回结果SQL指令方法
public ResultSet executeSQLQY(String sql) throws SQLException{
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
} catch (Exception e) {
return null;
} finally {
} }}----SWITCH.jsp----------
<%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,xtjc2.DBMYSQLLink,xtjc2.PWD" errorPage="error.jsp"%>
<%
PWD n = new PWD(); //调用MD5密码转换类
String passwordMD5 = n.encryptPWD(request.getParameter("password"));
String userId = request.getParameter("userId");
String password = passwordMD5;
session.setAttribute("userId", userId);
session.setAttribute("password", password);
String sql = "select * from userlist where username='" + userId + "' and password='" + password + "'";
DBMYSQLLink ExSql = new DBMYSQLLink();
ResultSet rs = ExSql.executeSQLQY(sql); if (rs.next()) { //密码正确
Cookie cookie = new Cookie("login", userId);
cookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie); //写COOKIE type为页面中读Session的一变量 session.setAttribute("youname", rs.getString("youname"));
session.setAttribute("qx1", rs.getString("qx1"));
session.setAttribute("qx2", rs.getString("qx2"));
session.setAttribute("qx3", rs.getString("qx3"));
session.setAttribute("qx4", rs.getString("qx4"));
session.setAttribute("admin_qx", rs.getString("admin_qx"));
%>
<jsp:forward page="welcome.jsp"></jsp:forward>
<%} else { //密码错误%>
<jsp:forward page="fail.jsp"></jsp:forward>
<%}%>
----DBMYSQLLink.java----------
package xtjc2;import java.util.*;
import java.io.*;
import java.security.MessageDigest;import java.sql.*;
import com.mysql.jdbc.Driver.*;public class DBMYSQLLink {
private String url = "jdbc:mysql://10.17.162.159:3306/xtjc";
private String dbuser = "xtjc";
private String dbpass = "lcw2046";
//发送不返回结果SQL指令方法
public void executeSQL(String sql)throws SQLException{
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
con.close();
} catch (Exception e) {
}
}
//发送返回结果SQL指令方法
public ResultSet executeSQLQY(String sql) throws SQLException{
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
} catch (Exception e) {
return null;
} finally {
} }}----SWITCH.jsp----------
<%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,xtjc2.DBMYSQLLink,xtjc2.PWD" errorPage="error.jsp"%>
<%
PWD n = new PWD(); //调用MD5密码转换类
String passwordMD5 = n.encryptPWD(request.getParameter("password"));
String userId = request.getParameter("userId");
String password = passwordMD5;
session.setAttribute("userId", userId);
session.setAttribute("password", password);
String sql = "select * from userlist where username='" + userId + "' and password='" + password + "'";
DBMYSQLLink ExSql = new DBMYSQLLink();
ResultSet rs = ExSql.executeSQLQY(sql); if (rs.next()) { //密码正确
Cookie cookie = new Cookie("login", userId);
cookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie); //写COOKIE type为页面中读Session的一变量 session.setAttribute("youname", rs.getString("youname"));
session.setAttribute("qx1", rs.getString("qx1"));
session.setAttribute("qx2", rs.getString("qx2"));
session.setAttribute("qx3", rs.getString("qx3"));
session.setAttribute("qx4", rs.getString("qx4"));
session.setAttribute("admin_qx", rs.getString("admin_qx"));
%>
<jsp:forward page="welcome.jsp"></jsp:forward>
<%} else { //密码错误%>
<jsp:forward page="fail.jsp"></jsp:forward>
<%}%>
解决方案 »
- 求jqGrid的jsp例子!!
- java socket从服务器读取数据
- 郁闷了一天没搞好,请高手指教web service访问
- 求助关于struts和spring结合的BaseAction的设计
- 建了个没带Form、Action的JSP的页面,想迭代出数据库里某表某字段的全部记录!(在线等)
- JSP页面跳转批量传递ArrayList时发生的错误
- 为什么在struts的tiles框架中不能使用MzTreeView显示树形菜单啊?
- jsp数据库连接错误,大家帮我看下~(我是新手)
- 请问怎样卸载resin呀?
- 关于JSP环境的问题
- struts,页面本身中文正常,action后变为乱码,有过滤器,redirect=true又是中文?
- ant 使用初探
ResultSet只要.close()就可以关闭了。
他人的原代码,捕获sql异常
try{
while(rs.next()){
String Sname = rs.getString(1);
String Sno = rs.getString(2);
String Sage = rs.getString(3);
String Ssex = rs.getString(4);
String Sdept = rs.getString(5);
}
}catch(Exception e){
System.out.println("发生SQL异常!");
}
请教:我如何才能在我的SQL方法里捕获异常呢,好像把捕获异常写在JSP里不太好哦。
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
con.close();
} catch (Exception e) {
}
}
这里不要抛出异常啊, 加到CATCH快里面去啊 。
public ResultSet executeSQLQY(String sql) throws SQLException{
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, dbuser, dbpass);
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
} catch (Exception e) {
return null;
} finally {
}
你可以在catch里加输出异常信息的语句,方便你知道异常的内容。
catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
} 没有抛出错误都能运行哦System.out.println(e.getMessage());