用户登录
用户注册

分享至

hibernate query 空指针

  • 作者: 罐装的天才
  • 来源: 51数据库
  • 2021-01-21
楼主是用spring 管理struts吧,那么你的struts结合spring的插件配了吗(在struts-config的<plug-in>标签里),否则tbuserdao不一定注入成功,而且LoginAction要有一个TbUserSpringDAO tbuserdao的全局变量,还有它的get 和set方法,
另外你的程序写的有问题楼上说的是其中一个,还有就是
String hql = "from TbUser as tu where tu.vcUserName = : username and tu.vcPassWord = : password";
Query query = session.createQuery(hql);

hql中的username和password只是占位符,你还要在query下面加上
query.setParameter("username",你的用户名 );
query.setParameter("password",你的用户名);

String hql = "from TbUser as tu where tu.vcUserName = : username and tu.vcPassWord = : password";
Query query = session.createQuery(hql);
query.setParameter("username",你的用户名 );
query.setParameter("password",你的用户名);

List tbuser = (List) query.list();
return (TbUser)tbuser.get(0);
——————————————————————————————
其它都可以?只能说这个很诡异。。



  TbUser tbuser = (TbUser) query.list();
这个地方不能这么写啊,query.list(); 返回的是个list数组,要用list接收,你可以这样写
list ls = query.list();
TbUser tbuser =(TbUser) ls.get(0);
return tbuser;
这样返回的才是TbUser对象
修改:String hql = "from TbUser as tu where tu.vcUserName = : username and tu.vcPassWord = : password"添加上select * 试试,再不行发过来我给你调试一下



  你要getsession干什么呢?直接super.gethibernatetmplate.xxx方法进行增删改查操作就行了。。。。。



  query.setParameter("username",username );
query.setParameter("password",password);

List ls = query.list();
if (ls.size()>0)
return (TbUser) ls.get(0);
else reutrn null;



  会不会是你的sessionFactory配置错了?
还有你报空指针的是哪行代码?
软件
前端设计
程序设计
Java相关