当前位置: 代码迷 >> Java Web开发 >> Hibernate查询空值针,该如何解决
  详细解决方案

Hibernate查询空值针,该如何解决

热度:277   发布时间:2016-04-17 10:52:42.0
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://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   --><hibernate-configuration>    <session-factory>        <property name="dialect">            org.hibernate.dialect.MySQLDialect        </property>        <property name="connection.url">            jdbc:mysql://localhost:3306/HibernateTest        </property>        <property name="connection.username">root</property>        <property name="connection.password">123456</property>        <property name="connection.driver_class">            com.mysql.jdbc.Driver        </property>        <property name="myeclipse.connection.profile">MySQL55</property>        <mapping resource="com/zhoujiajun/pojo/Student.hbm.xml" />    </session-factory></hibernate-configuration>
  相关解决方案