调用javavbean时出现了异常??请大虾进来看看!! 可以用System.out.println 大法,定位在那里出的异常···就好解决了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我又重新写了一个BEAN,如下:package dc;import java.sql.*;public class VoteBean{ private Connection con=null; private Statement stmt=null; private ResultSet BookRs=null; public VoteBean(){ BuildConnection(); } public void BuildConnection(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:test"); } catch(Exception ex){ System.out.print(ex.toString()); } } public Connection getConnection(){ if(con==null) BuildConnection(); return this.con; } public void InitBookRs(Connection con) { try{ this.con=con; stmt=this.con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); BookRs=stmt.executeQuery("select * from uin"); } catch(SQLException sex){ System.out.println(sex.toString()); } } public void CloseBookRs(){ try{ if(BookRs!=null){ BookRs.close(); BookRs=null; } if(stmt!=null){ stmt.close(); stmt=null; } } catch(SQLException sex){ System.out.println(sex.toString()); } } public boolean next(){ boolean result=false; try{ result=BookRs.next(); } catch(SQLException sex){ System.out.println(sex.toString()); } return result; } public boolean login(Connection con,String un,String pw){ boolean result=false; String sql="select * from uin where un='"+un+"' and pw='"+pw+"'"; try{ this.con=con; Statement lstmt=null; lstmt=this.con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=lstmt.executeQuery(sql); result=rs.next(); rs.close(); lstmt.close(); } catch(SQLException sex){ System.out.println(sex.toString()); } return result; } }这个BEAN编译没有问题,但是怀疑就是这出错了!!我用如下代码在JSP中测试<%try{vote.InitBookRs(vote.getConnection());}catch(Exception e){out.println(e);}%>抛出异常和原来一样java.lang.NullPointerException 我的数据库没有问题,测试代码页不应该有什么问题!!就是BEAN的问题,但实在看不出那里出错了!!!请大虾指教!!!!!!!!!!!!! 一,测试数据库是否连接成功;二,测试rs是否为null 我用如下代码测试数据源连接成功,但是rs怎么测试????import java.sql.*;class Test{ public static void main(String args[]) { String l="jdbc:odbc:test"; try { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException:"); System.err.println(e.getMessage()); } Connection con=DriverManager.getConnection(l); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery("Select * from uin"); while(rs.next()) { System.out.print(rs.getString("age")); System.out.println(" "); } con.close(); } catch(SQLException ex) { System.out.println(ex); } } } private String info;if(rs==null) info="rs为空";else info="rs不为空"; .....再用一个方法返回info,再显示出来就可以了. 数据库是否连接上可以直接在JSP中用Connection con=vote.getConnection();if(con.isClosed()){out.print("没有连接上数据库");}else{out.print("连接上了数据库");} 终于解决了!!!!!!!!!!!!!!!!!!!!!!我又编了一个bean,在原来的基础上简化了!!总算成功了!!!谢谢各位大虾指点!!! bean如下:我只是实现了在bean中解决登陆的问题,虽然是一小步,但对于我来说,使自信心又一步加强了。package dc;import java.sql.*;public class ft{ private Connection con=null; private Statement stmt=null; private ResultSet BookRs=null; public ft(){ BuildConnection(); } public void BuildConnection(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:te"); } catch(Exception ex){ System.out.print(ex.toString()); } } public Connection getConnection(){ if(con==null) BuildConnection(); return this.con; } public boolean login(Connection con,String un,String pw){ boolean result=false; String sql="select * from uin where un='"+un+"' and pw='"+pw+"'"; try{ this.con=con; Statement lstmt=null; lstmt=this.con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=lstmt.executeQuery(sql); result=rs.next(); rs.close(); lstmt.close(); } catch(SQLException sex){ System.out.println(sex.toString()); } return result; } } js传值问题 如何在JSP登录系统中发送验证码给手机 在struts中,关于多页面调用一个Action里的request的问题? 刚装的tomcat6.0启动不了,大家帮帮忙 100分问题啊!怎么能一启动tomcat就调用某个类在后台执行呢 hibernate新手提问,有空的帮我看一下。 询问JAVA课程跪求老鸟帮个忙 jsp动态生成html的问题请教大家~~~ How to 整合 JBuilder9与JRun3.1 ? 如何使用户点击[退出]时,自动删除cookie? 高分求教分页显示的怪问题 比较复杂的问题。设计流程的处理!问题****
import java.sql.*;public class VoteBean{
private Connection con=null;
private Statement stmt=null;
private ResultSet BookRs=null;
public VoteBean(){
BuildConnection();
}
public void BuildConnection(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:test");
}
catch(Exception ex){
System.out.print(ex.toString());
}
}
public Connection getConnection(){
if(con==null)
BuildConnection();
return this.con;
}
public void InitBookRs(Connection con)
{
try{
this.con=con;
stmt=this.con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
BookRs=stmt.executeQuery("select * from uin");
}
catch(SQLException sex){
System.out.println(sex.toString());
}
}
public void CloseBookRs(){
try{
if(BookRs!=null){
BookRs.close();
BookRs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
}
catch(SQLException sex){
System.out.println(sex.toString());
}
}
public boolean next(){
boolean result=false;
try{
result=BookRs.next();
}
catch(SQLException sex){
System.out.println(sex.toString());
}
return result;
}
public boolean login(Connection con,String un,String pw){
boolean result=false;
String sql="select * from uin where un='"+un+"' and pw='"+pw+"'";
try{
this.con=con;
Statement lstmt=null;
lstmt=this.con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs=lstmt.executeQuery(sql);
result=rs.next();
rs.close();
lstmt.close();
}
catch(SQLException sex){
System.out.println(sex.toString());
}
return result;
}
}这个BEAN编译没有问题,但是怀疑就是这出错了!!我用如下代码在JSP中测试
<%
try{
vote.InitBookRs(vote.getConnection());
}
catch(Exception e){
out.println(e);
}
%>
抛出异常和原来一样
java.lang.NullPointerException
我的数据库没有问题,测试代码页不应该有什么问题!!
就是BEAN的问题,但实在看不出那里出错了!!!
请大虾指教!!!!!!!!!!!!!
二,测试rs是否为null
我用如下代码测试数据源连接成功,但是rs怎么测试????
import java.sql.*;
class Test
{
public static void main(String args[])
{
String l="jdbc:odbc:test";
try
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e)
{
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con=DriverManager.getConnection(l);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("Select * from uin");
while(rs.next())
{
System.out.print(rs.getString("age"));
System.out.println(" ");
}
con.close();
}
catch(SQLException ex)
{
System.out.println(ex);
}
}
}
info="rs为空";
else
info="rs不为空";
.....再用一个方法返回info,再显示出来就可以了.
Connection con=vote.getConnection();
if(con.isClosed())
{
out.print("没有连接上数据库");
}else{
out.print("连接上了数据库");
}
我又编了一个bean,在原来的基础上简化了!!
总算成功了!!!
谢谢各位大虾指点!!!
import java.sql.*;public class ft{
private Connection con=null;
private Statement stmt=null;
private ResultSet BookRs=null;
public ft(){
BuildConnection();
}
public void BuildConnection(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:te");
}
catch(Exception ex){
System.out.print(ex.toString());
}
}
public Connection getConnection(){
if(con==null)
BuildConnection();
return this.con;
}
public boolean login(Connection con,String un,String pw){
boolean result=false;
String sql="select * from uin where un='"+un+"' and pw='"+pw+"'";
try{
this.con=con;
Statement lstmt=null;
lstmt=this.con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs=lstmt.executeQuery(sql);
result=rs.next();
rs.close();
lstmt.close();
}
catch(SQLException sex){
System.out.println(sex.toString());
}
return result;
}
}