一个jsp 连接数据库出现的问题 用try-catch捕获异常,在程序中添加一些输出语句,找到你程序出错的具体位置,否则不能针对你的问题给出解答! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是一个没有数据库驱动程序的报错误.如果你是要连接SQL SERVER的话就要去下载SQL的JDBC驱动,将驱动为.JAR的文件拷入WEB的LIB下你在试试吧SQL SERVER为三个驱动名分为: msbase.jar mssqlserver.jar msutil.jarORACLE 为 classes111.jar 我的QQ为:50964024有问提再联系吧 楼上的,用odbc桥连也可以,楼主,你少加了个左括号:con=DriverManager.getConnection(在这里少了个括号)"jdbc:odbc:MydataSource","",""); 回复人: kingmaxno1(学会飞翔) ( ) 信誉:100 2004-04-22 14:11:00 得分:0 楼上的,用odbc桥连也可以,楼主,你少加了个左括号:con=DriverManager.getConnection(在这里少了个括号)"jdbc:odbc:MydataSource","","");===================================================我的同学的名字就叫飞翔,哈哈哈哈..... 附上源代码(这个是连接数据库的bean) package dl;import java.io.*;import java.text.*;import java.util.*;import java.lang.*;import java.sql.*;public class userlogin { private Connection con = null; private Statement stmt = null; private ResultSet rs = null; private PreparedStatement pstmt=null; private static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver"; public userlogin() throws Exception { } public String CheckUser(String username,String pwd) throws SQLException { String i="false"; try{ String sqlstmt="SELECT admin_id FROM AdminInfo WHERE admin_id='"+username+"' AND admin_pwd='"+pwd+"'"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:DBSource","",""); stmt=con.createStatement(); rs=stmt.executeQuery(sqlstmt); if(rs!=null&&rs.next()) { i="true"; } }catch(SQLException e) { System.out.println(new java.util.Date()); i=e.getMessage(); }catch(ClassNotFoundException e1){ i=e1.getMessage(); }finally{ if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(con!=null){con.close(); con=null;} return i; } } public String getGrade(String username) throws SQLException { String Grade=""; try{ String sqlstr="select permit_leverl from AdminInfo where admin_id='"+username+"'"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:DBSource","",""); pstmt = con.prepareStatement(sqlstr); rs = pstmt.executeQuery(); while(rs!=null && rs.next()){ Grade = rs.getString("permit_leverl"); } rs.close(); pstmt.close(); con.close(); con=null; return Grade; }catch(SQLException e){ if(rs!=null) rs.close(); if(pstmt!=null) pstmt.close(); if(con!=null){con.close(); con=null;} return Grade; }catch(ClassNotFoundException e1){ if(rs!=null) rs.close(); if(pstmt!=null) pstmt.close(); if(con!=null){con.close(); con=null;} return Grade; } } } 这个是jsp调用上面bean的源代码:<%@ page language="java"%><%@ page import = "java.util.*" %><%@ page import = "java.sql.*" %><%@ page import = "java.util.*" %><%@ page import = "java.sql.*" %><%@ page import = "java.text.*" %><%@ page contentType="text/html; charset=GB2312" %><jsp:useBean id="UserLogin" class="dl.userlogin" scope="application"/><%String Grade;String result="";String usern="liyiping";String pwd="111111";result=UserLogin.CheckUser(usern,pwd);Grade=UserLogin.getGrade(usern);%><%= result %> <%= Grade %> /* 改造了你的这个Bean */package dl;//import java.lang.*; //此包下的类是不需要import的.import java.io.*;import java.sql.*;import java.text.*;import java.util.*;public class userlogin { // 类名的单词首字母应该大写 ==> UserLogin private Connection con = null; private Statement stmt = null; private ResultSet rs = null; private PreparedStatement pstmt=null; private static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver"; public userlogin() { try{ Class.forName(jdbcDriver); con = DriverManager.getConnection("jdbc:odbc:DBSource","",""); /* DBSource ==> 你在数据源配置中用的数据源名称 */ }catch(ClassNotFoundException cnfe){ processException(cnfe); }catch(SQLException sqle) { processException(sqle); }catch(Exception ex) { processException(ex); } } public String CheckUser(String username,String pwd) { // 方法名首字母应该小写 ==> checkUser String i="false"; try{ String sqlstmt="SELECT admin_id FROM AdminInfo WHERE admin_id='"+username+"' AND admin_pwd='"+pwd+"'"; stmt = con.createStatement(); rs = stmt.executeQuery(sqlstmt); if(rs!=null && rs.next()){ i="true"; } }catch(SQLException sqle) { processException(sqle); }catch(Exception ex) { processException(ex); }finally{ return i; } } public String getGrade(String username) { String Grade=""; try{ String sqlstr="select permit_leverl from AdminInfo where admin_id='"+username+"'"; pstmt = con.prepareStatement(sqlstr); rs = pstmt.executeQuery(); if(rs!=null && rs.next()){ Grade = rs.getString("permit_leverl"); } }catch(SQLException sqle) { processException(sqle); }catch(Exception ex) { processException(ex); }finally{ return Grade; } } public void close(){ //在使用完这个类的实例后,应该主动调用此方法 try{ if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(pstmt!=null) pstmt.close(); if(con!=null) con.close(); }catch(SQLException sqle) { processException(sqle); }catch(Exception ex) { processException(ex); } } private void processException(Throwable t){ System.out.println(new java.util.Date()); t.printStackTrace(); }} <jsp:useBean id="UserLogin" class="dl.userlogin" scope="page"/>scope ==> 这个Bean的生命周期没有必要用application 现在的情况是编译后出现java.sql.SQLException: ResultSet is closed的错误。 注释掉Grade=UserLogin.getGrade(usern); 后正常。 请问是不是bean编写不当? 按照的yaray(雅睿,生活在别处)方法后上面的情况改了,但是不返回Grade的值,只有显示result的值,这是什么原因? 自建的博客嵌入优酷加密视频 checkbox 取值问题 两台机子,一台作为服务器,另一台如何直接进行jsp开发?? 怎样知道记录集里有多少条的记录? 请高手给提供点意见,急急急!!!! 求jsp递归菜单 大家帮忙一下 运行用struts模型写的程序要用到哪些东东? 诸位,谁能给出将文件上传到数据库和文件夹的优劣? tomcat启动后程序自动运行,只有停止tomcat才停下来,这是为什么? 怎么连不上呀?在线等? 请问struts menu的问题
你在试试吧
SQL SERVER为三个驱动名分为: msbase.jar mssqlserver.jar msutil.jar
ORACLE 为 classes111.jar 我的QQ为:50964024有问提再联系吧
楼主,你少加了个左括号:
con=DriverManager.getConnection(在这里少了个括号)"jdbc:odbc:MydataSource","","");
楼上的,用odbc桥连也可以,
楼主,你少加了个左括号:
con=DriverManager.getConnection(在这里少了个括号)"jdbc:odbc:MydataSource","","");===================================================我的同学的名字就叫飞翔,哈哈哈哈.....
package dl;
import java.io.*;
import java.text.*;
import java.util.*;
import java.lang.*;
import java.sql.*;
public class userlogin {
private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;
private PreparedStatement pstmt=null;
private static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver";
public userlogin() throws Exception
{ }
public String CheckUser(String username,String pwd) throws SQLException
{
String i="false";
try{
String sqlstmt="SELECT admin_id FROM AdminInfo WHERE admin_id='"+username+"' AND admin_pwd='"+pwd+"'";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:DBSource","","");
stmt=con.createStatement();
rs=stmt.executeQuery(sqlstmt);
if(rs!=null&&rs.next())
{
i="true";
}
}catch(SQLException e)
{
System.out.println(new java.util.Date());
i=e.getMessage();
}catch(ClassNotFoundException e1){
i=e1.getMessage();
}finally{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null){con.close();
con=null;}
return i;
}
}
public String getGrade(String username) throws SQLException
{
String Grade="";
try{
String sqlstr="select permit_leverl from AdminInfo where admin_id='"+username+"'";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:DBSource","","");
pstmt = con.prepareStatement(sqlstr);
rs = pstmt.executeQuery();
while(rs!=null && rs.next()){
Grade = rs.getString("permit_leverl");
}
rs.close();
pstmt.close();
con.close();
con=null;
return Grade; }catch(SQLException e){
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close();
if(con!=null){con.close();
con=null;}
return Grade;
}catch(ClassNotFoundException e1){
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close();
if(con!=null){con.close();
con=null;}
return Grade;
}
}
}
<%@ page language="java"%>
<%@ page import = "java.util.*" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.util.*" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.text.*" %>
<%@ page contentType="text/html; charset=GB2312" %>
<jsp:useBean id="UserLogin" class="dl.userlogin" scope="application"/>
<%String Grade;
String result="";
String usern="liyiping";
String pwd="111111";result=UserLogin.CheckUser(usern,pwd);
Grade=UserLogin.getGrade(usern);
%><%= result %> <%= Grade %>
package dl;//import java.lang.*; //此包下的类是不需要import的.
import java.io.*;
import java.sql.*;
import java.text.*;
import java.util.*;public class userlogin { // 类名的单词首字母应该大写 ==> UserLogin private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;
private PreparedStatement pstmt=null;
private static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver"; public userlogin() {
try{
Class.forName(jdbcDriver);
con = DriverManager.getConnection("jdbc:odbc:DBSource","","");
/* DBSource ==> 你在数据源配置中用的数据源名称 */
}catch(ClassNotFoundException cnfe){
processException(cnfe);
}catch(SQLException sqle) {
processException(sqle);
}catch(Exception ex) {
processException(ex);
}
} public String CheckUser(String username,String pwd) { // 方法名首字母应该小写 ==> checkUser
String i="false";
try{
String sqlstmt="SELECT admin_id FROM AdminInfo WHERE admin_id='"+username+"' AND admin_pwd='"+pwd+"'";
stmt = con.createStatement();
rs = stmt.executeQuery(sqlstmt);
if(rs!=null && rs.next()){
i="true";
}
}catch(SQLException sqle) {
processException(sqle);
}catch(Exception ex) {
processException(ex);
}finally{
return i;
}
} public String getGrade(String username) {
String Grade="";
try{
String sqlstr="select permit_leverl from AdminInfo where admin_id='"+username+"'";
pstmt = con.prepareStatement(sqlstr);
rs = pstmt.executeQuery();
if(rs!=null && rs.next()){
Grade = rs.getString("permit_leverl");
}
}catch(SQLException sqle) {
processException(sqle);
}catch(Exception ex) {
processException(ex);
}finally{
return Grade;
}
} public void close(){ //在使用完这个类的实例后,应该主动调用此方法
try{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(pstmt!=null) pstmt.close();
if(con!=null) con.close();
}catch(SQLException sqle) {
processException(sqle);
}catch(Exception ex) {
processException(ex);
}
} private void processException(Throwable t){
System.out.println(new java.util.Date());
t.printStackTrace();
}
}
scope ==> 这个Bean的生命周期没有必要用application
的错误。
注释掉Grade=UserLogin.getGrade(usern); 后正常。
请问是不是bean编写不当?
上面的情况改了,但是不返回Grade的值,只有显示result的值,这是什么原因?