ssh2-hibernate错误小结

好长时间没练习SSH2,今天在将自己之前的简单web项目改造成ssh2时,出现了很多简单的错误,但自己处理时还是花费了很长时间,现在就临时总结一下:

开始环境的搭建,我使用的是myeclipse 2015ci,首先在为工程添加框架时,顺序也是比较重要的,应该先添加spring,再添加hibernate,这样连接数据库的部分就会在applicationContext.xml文件中。

在使用hibernate时,出现了两个小问题:

(1)HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/Bi

这个错误发生的原因是:

String sql="select * from TbGoods where goodsCategoryId="+kind;
Query query=getCurrentSession().createQuery(sql);
其实就是将sql和hql搞混了,在hql中,应该这样改成这样:

String sql="from TbGoods where goodsCategoryId="+kind;
(2)第二个并没有报错,但是结果不对,原先的写法是这样的:

String sql="from TbGoods where goodsName like  '%"+name+"%'";
Query query=getCurrentSession().createQuery(sql);
              name是一个中文字符串,运行后,结果List长度总是为0,后来通过网上,修改了一下写法,改为:

String sql="from TbGoods where goodsName like ?";
Query query=getCurrentSession().createQuery(sql);
query.setString(0, "%"+name+"%");
错误没有了,但是又发现了另外一种潜在的错误:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

这种错误就是Struts2中的antlr包的版本太低所致,因此就关闭myeclipse,把hibernate中的高版本antlr复制一份,名称改为原先Struts2中antlr的名字,然后将Struts2中的antlr包删掉,把刚才复制的包粘过去,重新启动myeclipse,运行成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值