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);
}
错误提示
求支援啊~!