JavaWeb中Mybatis相关代码与表现层Servlet代码对接的异常解决
前言
在Servlet实例中编写数据库与业务逻辑层代码对接时,我们都是使用Mybatis框架来简化数据库连接。 一如既往的操作流程是:
1.在项目中导入Mybatis依赖;
2.配置好Mybatis核心配置文件(数据库用户相关的信息);
3.获取SqlSessionFactory对象—>从 SqlSessionFactory 中获取 SqlSession—>获取映射语句的对应接口
4.SQL映射文件、相关接口的编辑
5.然后就可以在java代码中进行sql语句的相关操作了。
(至少对于我一个新手来说大致是上述流程)
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
String username = req.getParameter("userName");
String passWord = req.getParameter("passWord");
System.out.println(username + passWord);
System.out.println("Web页面与ServletLogin连接成功!");//成功!
//mybatis操作:
//1.获取SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.从 SqlSessionFactory 中获取 SqlSession
SqlSession session = sqlSessionFactory.openSession();
//3.SqlSession对象获取映射语句的对应接口
UserMapper mapper = session.getMapper(UserMapper.class);
//4.执行sql语句
User user = mapper.selectUser(username, passWord);
//5.释放资源
session.close();//为什么只需要释放这一个资源? 其他资源会自己回收吗?
//Servlet对象的业务操作:
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
if (user == null)
{
writer.write("登录失败...");
} else
{
writer.write("登陆成功!");
}
}
但是
今天在编写javaWeb工程的时候,上述步骤就出现了问题