zoukankan      html  css  js  c++  java
  • Hibernate常用方法之_查询

    1、使用session的get方法

     1     public User getUser(int id){
     2         Session session = null;
     3         User user = null;
     4         try {
     5             session = HibernateUtils.getSession();
     6             /*根据主键获取一条记录*/
     7             user = (User) session.get(User.class,id);
     8         }finally {
     9             if (session != null){
    10                 session.close();
    11             }
    12         }
    13         return user;
    14     }

    2、使用HQL语言查询 Query

     1     public User getUserBynName(String name){
     2         User user = null;
     3         Session session = null;
     4         try {
     5             session = HibernateUtils.getSession();
     6             /*这里查的是User对象,不是user表,支持多态*/
     7             String hql = " FROM User as user WHERE user.name = :name ";
     8             Query query = session.createQuery(hql);
     9             query.setString("name",name);
    10             /*只返回一条记录,否则报错*/
    11             user = (User) query.uniqueResult();
    12         }finally {
    13             if (session != null){
    14                 session.close();
    15             }
    16         }
    17         return user;
    18     }
    19 
    20     public List<User> getUsersByName(String name){
    21         List<User> users = null;
    22         Session session = null;
    23         try {
    24             session = HibernateUtils.getSession();
    25             /*这里查的是User对象,不是user表,支持多态*/
    26             String hql = " FROM User as user WHERE user.name LIKE :name ";
    27             Query query = session.createQuery(hql);
    28             query.setString("name",name+"%");
    29             query.setFirstResult(10);
    30             query.setMaxResults(5);
    31             users = query.list();
    32         }finally {
    33             if (session != null){
    34                 session.close();
    35             }
    36         }
    37         return users;
    38     }

    3、使用条件查询 Criteria

     1     public User getUserByNameCri(String name){
     2         Session session = null;
     3         User user = null;
     4         try {
     5             session = HibernateUtils.getSession();
     6             /*条件查询*/
     7             Criteria criteria = session.createCriteria(User.class);
     8             /*添加约束条件*/
     9             criteria.add(Restrictions.eq("name",name));
    10             user = (User) criteria.uniqueResult();
    11         }finally {
    12             if (session != null){
    13                 session.close();
    14             }
    15         }
    16         return user;
    17     }
  • 相关阅读:
    sql两个字段相加减,第三个字段没有值的原因.
    CF 447B(DZY Loves Strings-贪心)
    Appium AndroidKeyCode
    初探Java多线程
    模拟实现Spring IoC功能
    Cordova 5 架构学习 Weinre远程调试技术
    快学Scala习题解答—第三章 数组相关操作
    org.hibernate.AssertionFailure: null id in com.you.model.User entry (don&#39;t flush the Session after a
    Swift3.0语言教程替换子字符串
    DHCP欺骗(DHCP Sproofing)
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4586766.html
Copyright © 2011-2022 走看看