记录一个逻辑性错误,抓狂了半小时,终于发现了他。
是一段很简单的代码,写法如下图。
public class LogServiceImpl implements IlogService {
@Override
public List<EntityLog> selectlog(String uname, String upwd) {
SqlSession session = MyBatisUtil.getSqlSession();
ILogDao dao=session.getMapper(ILogDao.class);
MyBatisUtil.close();
return dao.selectlog(uname,upwd);
}
}
然后就会报一个找不到构造方法的错误。

原因是我为了省事,直接中return中调用方法返回,但是在return之前就已经关闭了Sqlsession,所以就会有个逻辑性的错误。
解决办法:先把方法返回值保存下来,再关闭,然后返回保存的值就解决了。写法如下。
import java.util.List;
/**
* Created by Zhu on 2021/4/16.
*/
public class LogServiceImpl implements IlogService {
@Override
public List<EntityLog> selectlog(String uname, String upwd) {
SqlSession session = MyBatisUtil.getSqlSession();
ILogDao dao=session.getMapper(ILogDao.class);
List<EntityLog> list=dao.selectlog(uname,upwd);
MyBatisUtil.close();
return list;
}
}
本文记录了一段Java代码中的逻辑错误,该错误导致无法找到构造方法。问题在于尝试在关闭SqlSession之前返回结果。解决方案是先保存查询结果,关闭SqlSession后再返回结果,确保资源的正确管理。

7669

被折叠的 条评论
为什么被折叠?



