查询没有数据?

查询没有数据?

您好!

问题是这样的,web运行查询数据时,返回为null,但是没有报错。

http://img1.sycdn.imooc.com//climg/5d4fa01f0001b41c13440722.jpg

但是我使用test测试时,是有数据的如图

http://img1.sycdn.imooc.com//climg/5d4fa0790001a06415430743.jpg

它们加载的配置文件和使用的数据库都是一样的,请问有什么原因会出现在这种情况呢?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

请同学再这里随意打印一句话:

http://img1.sycdn.imooc.com//climg/5d4fca75000139a808180443.jpg

看看是否进入的catch中呢?

另外,看一下这两个地方是否有报错信息呢?

http://img1.sycdn.imooc.com//climg/5d4fcaec0001b3b304580116.jpg

祝学习愉快。

提问者 思醉 2019-08-11 15:38:33
package dao;

import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.entiry.Users;
import utils.SqlSessionFactoryUtils;

public class UsersDao {
	private SqlSession session=SqlSessionFactoryUtils.getFactory().openSession();
	private List<Users> list;
	
	public List<Users> findAll(){
		try {
			list = session.selectList("findAll");
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			session.close();
		}
		return list;
		
	}
}
package listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import utils.SqlSessionFactoryUtils;

@WebListener
public class SqlSessionFacteryListener implements ServletContextListener{

	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("SqlSessionFactory加载中");
		SqlSessionFactoryUtils.initSqlSessionFactory();
	}
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("Session销毁中");
		SqlSessionFactoryUtils.close();
	}
}
package utils;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryUtils {
	private static String resource = "mybatis-c.xml";
	
	private static SqlSessionFactory factory;
	
	private static ThreadLocal<SqlSession> threadlocal = new ThreadLocal<SqlSession>();
	
	public static void initSqlSessionFactory(){
		try {
			InputStream is = Resources.getResourceAsStream(resource);
			factory = new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static SqlSessionFactory getFactory(){
		return factory;
	}
	
	public static void close(){
		SqlSession session = threadlocal.get();
		if(session != null){
			session.close();
			threadlocal.set(null);
		}
		
	}
}
package servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.entiry.Users;

import dao.UsersDao;
@WebServlet("/indexc")
public class UsersSelectServlet extends HttpServlet{

	private UsersDao dao = new UsersDao();
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		List<Users> list = dao.findAll();
		if(list==null){
			System.out.println(list);
		}
		req.setAttribute("usersFindALL", list);
		req.getRequestDispatcher("index.jsp").forward(req, resp);
 	}

}

@易达333   您好!请帮忙查看问题出在什么地方,非常感谢。

提问者 思醉 2019-08-11 15:32:07

@易达333 您好!感谢您的帮忙,如下是你需要的:

package dao;


import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.entiry.Users;

import utils.SqlSessionFactoryUtils;


public class UsersDao {

    private SqlSession session=SqlSessionFactoryUtils.getFactory().openSession();

    private List<Users> list;

    public List<Users> findAll(){

        try {

            list = session.selectList("findAll");

        } catch (Exception e) {

        }finally{

        session.close();

}

return list;

}

}


好帮手慕阿莹 2019-08-11 15:04:57

请同学贴一下你的UserDao中的代码。

注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。


  • 提问者 思醉 #1
    您好!代码已高亮显示在回答中。
    2019-08-11 15:40:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师