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     }
  • 相关阅读:
    Codeforces Round #359 (Div. 2) C. Robbers' watch 鸽巢+stl
    poj 3616 Milking Time dp
    UVA 11401
    UVA 11806 Cheerleaders dp+容斥
    Educational Codeforces Round 4 D. The Union of k-Segments 排序
    Codeforces Round #337 (Div. 2) C. Harmony Analysis 数学
    Codeforces Round #337 (Div. 2) B. Vika and Squares 水题
    Codeforces Round #337 (Div. 2) A. Pasha and Stick 水题
    POJ2402/UVA 12050 Palindrome Numbers 数学思维
    UVA 11076 Add Again 计算对答案的贡献+组合数学
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4586766.html
Copyright © 2011-2022 走看看