日期:2014-05-17  浏览次数:20761 次

Hibernate查询空值针
数据库是MySQl的
mysql> use hibernatetest
Database changed
mysql> select * from student
  -> ;
+-----------+------+----------+
| idStudent | name | number |
+-----------+------+----------+
| 1 | zjj | 20000101 |
| 2 | zhou | 20000102 |
+-----------+------+----------+
2 rows in set (0.03 sec)


Hibernate运行查询的时候有空指针异常,不知道是哪里的错误导致查询失败,错误贴上
log4j:WARN No appenders could be found for logger (com.zhoujiajun.pojo.StudentDAO).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NullPointerException
at com.zhoujiajun.pojo.StudentDAO.findAll(StudentDAO.java:110)【1】
at com.zhoujiajun.test.test.main(test.java:15)【2】

数据库是有连接成功,也有数据,但是查询没结果,查询会有空指针异常,不知道是哪里出问题了,希望大家有空帮我看看。。
我是Hibernate刚开始学,什么都不懂


代码用MyEclipse的DB Browser,对数据表右键,Hibernate Rever Engineering生成的代码,具体的贴上来
Student.java:
数据表的各元素的get和set
这个应该没有问题

IBaseHibernateDAO.java
Java code

public interface IBaseHibernateDAO {
    public Session getSession();
}



BaseHibernateDAO.java
Java code

public class BaseHibernateDAO implements IBaseHibernateDAO {
    
    public Session getSession() {
        //FIXME: Implement this method
        return null;
    }
    
}



StudentDAO.java(代码没全贴,因为就用了findAll() )
Java code

public class StudentDAO extends BaseHibernateDAO  {
        private static final Logger log = LoggerFactory.getLogger(StudentDAO.class);
    public static final String NAME = "name";
    public static final String NUMBER = "number";
        public List findAll() {
        log.debug("finding all Student instances");
        try {
            String queryString = "from Student";
             Query queryObject = getSession().createQuery(queryString);//【1】处出错
             return queryObject.list();
        } catch (RuntimeException re) {
            log.error("find all failed", re);
            throw re;
        }
    }
}



test.java
Java code

public class test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        StudentDAO dao = new StudentDAO();
        List<Student> result = dao.findAll();//【2】处出错
        for(Student o : result) {
            System.out.println("编号:" + o.getIdStudent());
            System.out.println("姓名:" + o.getName());
            System.out.println("学号:" + o.getNumber());
        }
        dao.getSession().close();
    }

}



然后还有配置hibernate.cfg.xml
Java code

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibe