java结束sql链接_数据查询时报出java.sql.SQLException: 关闭的连接

通过username查询信息,我想在测试类中打出信息,但是发生异常[java.sql.SQLException: 关闭的连接]!而且命名表中存在的用户名也告我可以注册!

PS:如果不输出用户信息则一切正常!

BuserDAOImpl.java

public Buser findByUsername(String username) {//查询个人信息

//Buser idividual=new Buser();此句话不可以放到在此处,否则会导致你无论查不查到值都new出一个对象了!美好的逻辑错误- -

Buser idividual=null;

String sql="select * from buser where username=?";

try {

this.ps=this.conn.prepareStatement(sql);

this.ps.setString(1,username);

ResultSet rs=this.ps.executeQuery();

if(rs.next())

{

idividual=new Buser();//但在此处必须得new一下!否则会报空指针异常!

idividual.setUsername(rs.getString(1));//记住了new出来了他就不是空的,人家是有地址的!除非内存不够用了。

idividual.setUserpassword(rs.getString(2));

idividual.setUsersex(rs.getString(3));

idividual.setUserage(rs.getInt(4));

idividual.setUserlocal(rs.getString(5));

idividual.setUseremail(rs.getString(6));

idividual.setUserlastdate(rs.getString(7));

idividual.setUserlock(rs.getInt(8));

idividual.setUserappflag(rs.getInt(9));

idividual.setUserphoto(rs.getString(10));

}

this.ps.close();

} catch (Exception e) {

e.printStackTrace();

}

BuserDAOProxy.java

public Buser findByUsername(String username){

Buser individual=null;

try {

individual=this.dao.findByUsername(username);

} catch (Exception e) {

e.printStackTrace();

}finally{

this.dbc.close();//就是这块儿!只有把这句话注释掉才能正常输出!

}

return individual;

}

测试类

public static void main(String[] args) {

IBuserDAO dao=DAOFactory.getIBuserDAOInstance();

//Buser user=dao.findByUsername("打不死");

int flag=1;

flag=dao.findByUsername("打不死的小强").getUserappflag();//

if(dao.findByUsername("打不死的")==null)// 就是这块儿,无论我填什么,他都告我不可以注册!已解决!

{

System.out.println("可以注册!");

}

else

{

//flag=dao.findByUsername("打不死的").getUserappflag();

//System.out.println("不可以注册!"+dao.findByUsername("打不死的").getUserappflag());

System.out.println("不可以注册!"+flag);

}

错误提示

5a78b8ea0865e99535d9079c0832f10b.png

622ea0c8f0da1a0499d7e2d94d7fa048.gif求支援啊~!


版权声明:本文为weixin_39884100原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。