hibernate报空指针异常

zhaozhijun1988 2011-12-01 03:42:59
在学习hibernate遇到一个问题,写个一个测试文件,会员添加和输出会员列表在一起测试,运行到加载会员列表出空指针异常,
注释其中一个,分别运行则行,有高手知道吗
public static void main(String[] args) {
// TODO Auto-generated method stub
MemberAction memberAction =new MemberAction();
// MemberAction memberAction2 =new MemberAction();
Admin admin=new Admin();

admin.setLoginname("zzj");
admin.setPassword("zzj");
//会员添加
memberAction.addUser(admin);
//会员列表
List list=memberAction.getUsers();
Iterator it=list.iterator();
while(it.hasNext()){
Admin admin1=(Admin)it.next();
System.out.println(admin1.getLoginname()+admin1.getPassword());
}
}
错误信息为
Hibernate: insert into test.dbo.Admin (loginname, password) values (?, ?) select scope_identity()
java.lang.NullPointerException
at daoimpl.MemberDaoImpl.listMember(MemberDaoImpl.java:82)
at serviceimpl.MemberServiceImpl.listMember(MemberServiceImpl.java:27)
at action.MemberAction.getUsers(MemberAction.java:21)
at main.TestMember.main(TestMember.java:23)

出错的语句为
public List listMember() {
List memberlist=new ArrayList();
//常见session对象
Session session=MySessionFatory.currentSession();
//定义一个事务
Transaction ts=null;
try{
String hql="select a from Admin as a order by a.uid";
Query query=session.createQuery(hql);
ts=session.beginTransaction();
memberlist=query.list();
//提交事务
ts.commit();
}catch(Exception e){
if(ts!=null) ts.rollback();
e.printStackTrace();

}finally{
MySessionFatory.closeSession();
}
...全文
324 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
码帮主 2011-12-02
  • 打赏
  • 举报
回复
我看好像你这个都没有怎么用hibernate的感觉!
zhaozhijun1988 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sx469499504 的回复:]

memberAction.addUser(admin);
这个方法有问题,看数据库中数据有没有插进去
[/Quote]
插进去啦
zhaozhijun1988 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxy149434823 的回复:]

估计是你memberAction.addUser(admin);这个方法中把session关闭了
[/Quote]
引用楼主 zhaozhijun1988 的回复:

在学习hibernate遇到一个问题,写个一个测试文件,会员添加和输出会员列表在一起测试,运行到加载会员列表出空指针异常,
注释其中一个,分别运行则行,有高手知道吗
public static void main(String[] args) {
// TODO Auto-generated method stub
MemberAction memberAction =new Member……

我确实是把sessionfactory关闭啦,如果不关闭的话,会出现另一个错误,Hibernate: insert into test.dbo.Admin (loginname, password) values (?, ?) select scope_identity()
Hibernate: select admin0_.uid as uid0_, admin0_.loginname as loginname0_, admin0_.password as password0_ from test.dbo.Admin admin0_ order by admin0_.uid
org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
这个错误是不是因为我开启事务的话,没关闭,下面紧接着查询的一个事务无法读取被占用的数据啊,我是新手,只能空想,不知道对不对我的猜测
zhaozhijun1988 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhaozhijun1988 的回复:]

引用楼主 zhaozhijun1988 的回复:
在学习hibernate遇到一个问题,写个一个测试文件,会员添加和输出会员列表在一起测试,运行到加载会员列表出空指针异常,
注释其中一个,分别运行则行,有高手知道吗
public static void main(String[] args) {
// TODO Auto-generated method stub
MemberActi……
[/Quote]

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="pojo.Admin" table="Admin" schema="dbo" catalog="test">
<id name="uid" type="java.lang.Integer">
<column name="uid" />
<generator class="identity" />
</id>
<property name="loginname" type="java.lang.String">
<column name="loginname" length="50" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="50" />
</property>
</class>
</hibernate-mapping>
wnf2009 2011-12-01
  • 打赏
  • 举报
回复
select a from Admin as a order by a.uid 这个是sql
luojian2006 2011-12-01
  • 打赏
  • 举报
回复
你那hql是sql,不是hibernate的查询语句啊 [Quote=引用 2 楼 huiwenjie168 的回复:]

String hql="select a from Admin as a order by a.uid";你写的这个不是hql
Query query=session.createQuery("from Admin");//这样才行,你写的那个要这样执行Query query=session.createSQLQuery(hql);还有我看你这sql写的有问题
你的sql改成:select ……
[/Quote]
God_Service 2011-12-01
  • 打赏
  • 举报
回复
memberAction.addUser(admin);
楼主是这个方法有问题addUser();
把你的Admin.hbm.xml配置文件贴出来
zhaozhijun1988 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhaozhijun1988 的回复:]
在学习hibernate遇到一个问题,写个一个测试文件,会员添加和输出会员列表在一起测试,运行到加载会员列表出空指针异常,
注释其中一个,分别运行则行,有高手知道吗
public static void main(String[] args) {
// TODO Auto-generated method stub
MemberAction memberAction =new Member……
[/Quote]
我确实是把sessionfactory关闭啦,如果不关闭的话,会出现另一个错误,Hibernate: insert into test.dbo.Admin (loginname, password) values (?, ?) select scope_identity()
Hibernate: select admin0_.uid as uid0_, admin0_.loginname as loginname0_, admin0_.password as password0_ from test.dbo.Admin admin0_ order by admin0_.uid
org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
这个错误是不是因为我开启事务的话,没关闭,下面紧接着查询的一个事务无法读取被占用的数据啊,我是新手,只能空想,不知道对不对我的猜测
sx469499504 2011-12-01
  • 打赏
  • 举报
回复
memberAction.addUser(admin);
这个方法有问题,看数据库中数据有没有插进去
arikara 2011-12-01
  • 打赏
  • 举报
回复
at daoimpl.MemberDaoImpl.listMember(MemberDaoImpl.java:82)
at serviceimpl.MemberServiceImpl.listMember(MemberServiceImpl.java:27)
at action.MemberAction.getUsers(MemberAction.java:21)
List list=memberAction.getUsers();
MemberDaoImpl中listMember的方法在执行hql时为空,把这个方法贴出来
Cactus_hxk 2011-12-01
  • 打赏
  • 举报
回复
String hql="select a from Admin as a order by a.uid";你写的这个不是hql
Query query=session.createQuery("from Admin");//这样才行,你写的那个要这样执行Query query=session.createSQLQuery(hql);还有我看你这sql写的有问题
你的sql改成:select a.uid, a.name from Admin as a order by a.uid
lxy149434823 2011-12-01
  • 打赏
  • 举报
回复
估计是你memberAction.addUser(admin);这个方法中把session关闭了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧