首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Criteria查询,DetachedCriteria离线查询 -干综合查询

2012-07-01 
Criteria查询,DetachedCriteria离线查询 --做综合查询通过Session得到Criteria类的对象?/*** 用Criteria方

Criteria查询,DetachedCriteria离线查询 --做综合查询

通过Session得到Criteria类的对象

?Criteria查询,DetachedCriteria离线查询 -干综合查询/** * 用Criteria方便的综合查询 Criteria类有丰富的比较方法 * * 如:大于,小于,等于, not null, in,null, like, isEmpty.... */ public static void select() { Session s = null; try { s = HibernateUtil.getSeesion(); //得到Criteria对象 final Criteria c = s.createCriteria(User.class); //添加查询条件 ,eq()表示等于,第一个参数是User类上的属性名, 第二个参数是值 . c.add(Restrictions.eq("name", "zl")); c.add(Restrictions.lt("birthday", new Date())); //lt()表示小于 //下面两个条件是 或的关系,可以注意观察输出的SQL语句 c.add(Restrictions.or(Restrictions.eq("name", "wj"), Restrictions.eq("name", "name0"))); // 分页 c.setFetchSize(10); //从第10条记录起 c.setMaxResults(10); //查出10条记录 //执行查询 final List<User> list = c.list(); for (final User u : list) { System.out.println(u.getId() + " " + u.getName()); } } finally { s.clear(); } }

?

?

DetachedCriteria 在构造时不须要Session对象,可以在没有Session时完成拼接查询条件,要执行时才须要Session对象

?Criteria查询,DetachedCriteria离线查询 -干综合查询//在Action中 拼查询条件public ActionForward Action (....){ DetachedCriteria dc = DetachedCriteria.forClass(User.class); String name = request.getParameter("name");//拼查询条件 if (name != null)dc.add(Restrictions.eq("name", name)); int age = request.getParameter("age"); if(age > 0) dc.add(Restrictions.eq("age", age)); List users = query(dc);}

?

?Criteria查询,DetachedCriteria离线查询 -干综合查询//在DAO层 查询 static List query(DetachedCriteria dc) {Session s = HibernateUtil.getSession();Criteria c = dc.getExecutableCriteria(s); //这时须要一个sessionList rs = c.list();s.close();return rs;}

?

热点排行