this.getHibernateTemplate().find()问题

lhpaiti 2012-07-31 01:00:51
SSH整合中遇到问题:
查询的时候:
this.getHibernateTemplate().find("from Board wherer parentid = ? ",0);查询时报错:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
但是把语句改下:this.getHibernateTemplate().find("from Board wherer parentid = 0");
查询正常
请高手看看,这是怎么回事。。。
...全文
380 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sckj0818 2014-05-11
  • 打赏
  • 举报
回复
楼主,你最后是怎么解决的,我看有说jar包冲突的,有说字符类型的问题,我也碰到这个问题了。求指导~
lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
源码

package com.lhp.dao.imp;


import java.sql.SQLException;
import java.util.List;

import org.apache.derby.tools.sysinfo;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.lhp.bean.Board;
import com.lhp.dao.BoardDAO;

public class BoardDAOImp extends HibernateDaoSupport implements BoardDAO {
private static final String FIND_ALL_BOARD="from Board";
private static final String FIND_BY_ID="select * from Board where id = ?";
private static final String FIND_BY_PID="from Board where parentid = ?";
private static final String FIND_BY_THEME="select * from Board where theme = ?";
private static final String FIND_ALL_COUNT="select count(*) from Board";

public Board findBoardByTheme(String theme) {
return (Board)this.getHibernateTemplate().find(FIND_BY_THEME,theme);
}

public Board findBoardByid(long id) {
return (Board)this.getHibernateTemplate().find(FIND_BY_ID,id);
}

public long findBoardCount() {
return ((Long)this.getHibernateTemplate().find(FIND_ALL_COUNT).get(0)).longValue();
}

public List<Board> findListBoard(int page) {
return null;
}

public Board saveBoard(Board board) {

this.getHibernateTemplate().save(board);

return board;
}

public List findBoardByParentId(final long parentId) {

//System.out.println((this.getHibernateTemplate().find("from Board where boardname = ?","6666")).isEmpty());
//return this.getHibernateTemplate().find("from Board where parentid = ?" ,0);
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
Criteria c =s.createCriteria(Board.class);
c.add(Restrictions.eq("parentid", new Long(parentId)));
return c.list();
}

});
}

public List allBoard() {
//System.out.println((this.getHibernateTemplate().find("from Board where parentid = ?",new Object[] {0})).isEmpty());
return this.getHibernateTemplate().find("from Board");
//return null;
}
}


lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

楼主的where单词写错了居然还能查出来,震惊了。8楼的是正确的,查不出来就不知道原因了,能贴源码吗?
[/Quote]
不好意思,我发帖的时候是手写的,没有复制,代码里面的where是没有写错的。。。不然的话第二句不带“?”的语句也会查不出来的。
a_b_a_b_a_b_a_b 2012-07-31
  • 打赏
  • 举报
回复
楼主的where单词写错了居然还能查出来,震惊了。8楼的是正确的,查不出来就不知道原因了,能贴源码吗?
lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

是的,find(String queryString,Object[] values);

你可以这样 .find(strSql,new Object[] {value1,value2});
[/Quote]
不行!!还是一样查不出来。。。
yijiulove 2012-07-31
  • 打赏
  • 举报
回复
是的,find(String queryString,Object[] values);

你可以这样 .find(strSql,new Object[] {value1,value2});
lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:
你的问号是小写的吗? 看着别扭呢


你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
[/Quote]
小写没错!不支持?不会吧。。你看看这个:http://wenku.baidu.com/view/80b10079168884868762d6ac.html
a312983516 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
你的问号是小写的吗? 看着别扭呢
[/Quote]

你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
a312983516 2012-07-31
  • 打赏
  • 举报
回复
你的问号是小写的吗? 看着别扭呢
lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

通过find查询的时候 参数要是object数组。
[/Quote]
find有三个构造器:find(String queryString),find(String queryString,Object vale),find(String queryString,Object[] values);
cxw3152 2012-07-31
  • 打赏
  • 举报
回复
通过find查询的时候 参数要是object数组。
lhpaiti 2012-07-31
  • 打赏
  • 举报
回复
等了这么久每一个人回啊。。。
改用Criteria就行了,但是还是不知道为什么那样做就报错。。。
14.5 图书查询 在 head.jsp 页面中,不只有登录、注销和注册功能,在它们的下面,还有图书查询功能,如 在搜书输入框中输入"My" ,就会出现图 14.7 所示的界面。 如果根据输入的内容,找不到任何图书,就会告知无符合条件的图书。下面按步骤列举代码 实现。 图 14.7 图书搜索结果 在 DAO 接口 IBookDAO.java 中加入方法: public List getRequiredBookByName(String name); 在 DAO 实现类 BookDAO.java 代码如下: public List getRequiredBookByName(String name){ try{ List books=this.getHibernateTemplate(). find("from Book where bookname like '%"+name+"%'"); return books; }catch(Exception e){ e.printStackTrace(); return null; } } 在业务逻辑接口 IBookService.java 中加入方法: public List getRequiredBookByName(String name); 业务逻辑实现类 BookService.java 代码如下: public List getRequiredBookByName(String name) { return bookDAO.getRequiredBookByName(name); } 方法实现完成后,就是 Action 实现了。首先在 struts.xml 中进行配置: /searchBook_result.jsp

81,092

社区成员

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

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