Hibernate 查询方法

 1 1、简单查询:
 2  public User select(User user) {
 3         User newUser;
 4         try {
 5             newUser = (User) session.get(User.class,user.getEmails());
 6             return newUser;
 7         } catch (Exception e) {
 8             log.error("查询失败", e);
 9             return null;
10         } finally {
11             HibernateUtil.closeSession();
12         }
13     }
14 2、 用?:
15  public List<User>select(User user){
16   String hql = "from user where emails= ? and password= ?";
17   Query query = session.createQuery(hql);
18   query.setString(0, user.getEmails());
19   query.setString(1, user.getPassword());
20   List<User> list = query.list();
21   session.close();
22   return list;
23  }
24
25 3、用":+命名":
26  public List<User> select(User user){
27   Session session = HibernateSessionFactory.getSession();
28   String hql = "from user where emails= :e and password= :p";
29   Query query = session.createQuery(hql);
30 {
31   query.setString("e", user.getEmails());
32   query.setString("p", user.getPassword());
33 }else{
34  query.setParameter("e", user.getEmails());
35   query.setParameter("p", user.getPassword());
36 }else{
37  query.setProperties(user);
38 }
39   List<User> list = query.list();
40   session.close();
41   return list;
42  }
43 4、使用条件查询(Criteria) 没有hql语句 :
44  public List<User> select(User user){
45   Criteria cri = session.createCriteria(User.class);
46   cri.add(Restrictions.eq("emails", user.getEmails()));
47   cri.add(Restrictions.eq("password", user.getPassword()));
48   List<User> list = cri.list();
49   session.close();
50   return list;
51  }
52
53
54 5、离线条件查询:
55  public List<User> select(User user){
56   DetachedCriteria dc = DetachedCriteria.forClass(User.class);
57   dc .add(Restrictions.eq("emails", user.getEmails()));
58   dc .add(Restrictions.eq("password", user.getPassword()));
59   Criteria cri = dc.getExecutableCriteria(session);
60   List<User> list = cri.list();
61   session.close();
62   return list;
63  }
64 6、分页查询:
65 1)  setFirstResult(int):指定从指定的位置开始查询
66 2)  setMaxResult(int):指定一次查询的对象数量。  
时间: 2024-11-04 07:01:27

Hibernate 查询方法的相关文章

spring—hibernate查询

Spring管理hibernate查询方法 HQL语句查询 this.getHibernateTemplate().getSessionFactory().getCurrentSession() .createQuery("").uniqueResult();//null或者一个对象         Criteria查询 this.getHibernateTemplate().getSessionFactory().getCurrentSession() .createCriteria

Spring Data学习笔记-查询方法

Spring Data支持类似Hibernate的查询语句,也可以写原生SQL语句,下面记录典型的例子. /**  * 1. Repository 是一个空接口. 即是一个标记接口  * 2. 若我们定义的接口继承了 Repository, 则该接口会被 IOC 容器识别为一个 Repository Bean.  * 纳入到 IOC 容器中. 进而可以在该接口中定义满足一定规范的方法.   *   * 3. 实际上, 也可以通过 @RepositoryDefinition 注解来替代继承 Rep

hibernate 查询方式汇总

主要摘自  http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/article/details/7703429 Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种.但是细分可以有如下几种: 一.HQL查询方式     这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来

Hibernate查询方式

Hibernate查询方式 1 对象导航查询 (1)根据id查询某个客户,再查询这个客户里面所有的联系人   2 OID查询 (1)根据id查询某一条记录,返回对象   3 HQL查询 (1)Query对象,写hql语句实现查询   4 QBC查询 (1)Criteria对象   5 本地sql查询 (1)SQLQuery对象,使用普通sql实现查询 对象导航查询 1 查询某个客户里面所有联系人过程,使用对象导航实现   2 代码 OID查询 1 根据id查询记录 (1)调用session里面的

Hibernate查询的六种方式

Hibernate查询的六种方式 分别是HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询. 如果单纯的使用hibernate查询数据库只需要懂其中的一项就可以完成想要实现的一般功能,但是想多学知识就看一下这六种方法,他们提供了更多选择.当然每一种方法都有其适用的情况与前提. 1.HQL查询 HQL是hibernate自己的一套查询语言,于SQL语法不同,具有跨数据库的优点.示例代码: [java] view plain copy

六种方式实现hibernate查询,及IDE推荐

hibernate查询的6种方法.分别是HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询. 如果单纯的使用hibernate查询数据库只需要懂其中的一项就可以完成想要实现的一般功能,但是从一个点,让我们掌握6中方法,则提供了更多选择.每一种方法都有其适用的情况与前提. HQL查询 HQL是hibernate自己的一套查询语言,于SQL语法不同,具有跨数据库的优点.示例代码: static void query(String na

hibernate查询异常:No Dialect mapping for JDBC type:-9(sql server)

今天用到hibernate查询数据库数据(sql server),出现异常:No Dialect mapping for JDBC type:-9 但是把对应的sql语句拷贝到数据库UI工具运行发现没有错误,所以考虑是hibernate查询的问题. 最终通过上网查资料发现hibernate对于nvarchar的查询问题,一般在中文系统中应该使用nvarchar作为字符串的对应类型,但是Hibernate中的默认实现SQLServerDialect使用了varchar. 解决方法: 1.自定义个一

记录使用Hibernate查询bean中字段和数据库列类型不匹配问题

今天在工程中遇到Hibernate查询的时候,bean中的字段和数据库中的字段不符合(bean中有pageTime字段,但是数据库中没有此列)报错问题. 具体问题环境: 在auto_off表中,off_time字段是bigint类型,用于存放unix时间戳,bean中对应属性类型为Long类型,但是前台传递过来的时间是String类型(2016-11-25) 解决办法1: 在bean中添加一个String类型的pageTime字段,然后前台传递过来的数据使用pageTime接收,再将值转换成lo

Hibernate查询方式 一

Hibernate查询方式 说到hibernate的查询方式,我们自然而然就想到了它--hql,hibernate query language.hql是使用hibernate框架的变成配朋友们使用最多的一种方式,它以自身的独特的优势:屏蔽数据库,书写灵活的优点,备受大家的青睐.但是Hibernate不仅给我们提供了这一种查询方式,这时候悠然要说来,是不只一种,还有sql,对,确实还有sql,但是还有一种,就是Criteria 查询.那么今天,我们就来聊一聊hibernate的几种查询方式. H