`
zqding
  • 浏览: 96386 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Hibernate的查询方式

阅读更多

Hibernate的查询方式:

1、使用HQL方法实现的查询
//根据字符串查询。使用HQL方法实现的查询

public static List<User> query(String str){
                Session s = null;                
                try {
                        s = HibernateUtil.getSession();        
                        //String hql = "from User as user where user.name =?";
                        String hql = "from User as user where user.name =:name";
                        Query query = s.createQuery(hql);
                        //query.setString(0, name);
                        query.setFirstResult(0);//用这两条实现分页
                        query.setMaxResults(10);
                        query.setString("name", str);
                        List<User> list = query.list();//executeQuery();使用泛型。
                        
                        //确定只有一条满足条件的记录时可以用以下的语句。
                        //User u = (User) query.uniqueResult();
                        //System.out.println(u);
                        
                        /*for(User user:list){
                                System.out.println(user.getId());
                                System.out.println(user.getName());
                                System.out.println(user.getBirthday());
                        }*/
                        
                        return list;                        
                } finally {
                        if (s != null) {
                                s.close();
                        }
                }
        }

 

 

2、使用Criteria条件查询方式实现的查询
        //Criteria条件查询方式。

public static List<User> criQuery(String name){
                Session s = null;                
                try {
                        s = HibernateUtil.getSession();        
                        Criteria c = s.createCriteria(User.class);
                        c.add(Restrictions.eq("name", name));//条件查询方法实现查询。                        
                        List<User> list = c.list();//executeQuery();使用泛型。                        
                        return list;                        
                } finally {
                        if (s != null) {
                                s.close();
                        }
                }
        }

 

 

Hibernate工具类:

/**
 * 文件名:HibernateUtil.java
 * 作  者:zqding
 * 时  间:2009-5-23
 **/
package com.starit.toolsutil;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.starit.dao.User;

public final class HibernateUtil {
        private static SessionFactory sessionFactory;
        
        //静态代码块
        static {
                Configuration cfg = new Configuration();
                cfg.configure();
                sessionFactory = cfg.buildSessionFactory();

        }

        public static SessionFactory getSessionFactory() {
                return sessionFactory;
        }

        public HibernateUtil() {

        }
        
        public static Session getSession(){
                return sessionFactory.openSession();
        }
        
        //向库表增加对象
        public static void addObject(Object entity){
                Session s = null;
                Transaction tx = null;                
                try {
                        s = HibernateUtil.getSession();
                        tx = s.beginTransaction();
                        s.save(entity);
                        tx.commit();
                
                }finally{
                        if (s != null) {
                                s.close();
                        }
                }
        }
        
        //向库表更新对象 
        public static void updateObject(Object entity){
                Session s = null;
                Transaction tx = null;                
                try {
                        s = HibernateUtil.getSession();
                        tx = s.beginTransaction();
                        s.update(entity);
                        tx.commit();
                        
                }finally{
                        if (s != null) {
                                s.close();
                        }
                }
        }
        
        //从库表删除对象
        public static void deleteObject(Object entity){
                Session s = null;
                Transaction tx = null;                
                try {
                        s = HibernateUtil.getSession();
                        tx = s.beginTransaction();
                        s.delete(entity);
                        tx.commit();
                        
                }finally{
                        if (s != null) {
                                s.close();
                        }
                }
        }
        
        //从库表根据ID查询对象数据
        public static Object getObject(Class clazz,Serializable id){
                Session s = null;
                try {
                        s = HibernateUtil.getSession();
                        Object object = s.get(clazz, id);
                        return object;
                }finally{
                        if (s != null) {
                                s.close();
                        }
                }                
        }

        
        //从库表中以HQL语句的方式查询对象
        public static List<User> getObject(String value){                
                Session s = null;                
                try {
                        s = HibernateUtil.getSession();
                        String hql = "from User as user where user.name = ?";
                        Query query = s.createQuery(hql);
                        query.setString(0, value);
                        List<User> list = query.list();//查询的记录有多个时
//                        User user = query.uniqueResult();//查询的结果中只有 一个时,可以用这个,它反回一个对象类型的。
                        return list;
                }finally{
                        if (s != null) {
                                s.close();
                        }
                }
        }
}

 

分享到:
评论

相关推荐

    Hibernate查询方式代码示例

    **Hibernate查询方式详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本教程将深入探讨Hibernate 3.x版本中的查询方式,包括基本查询、HQL(Hibernate Query ...

    hibernate查询方法

    **Hibernate查询方法大全** Hibernate,作为Java领域中最流行的持久化框架之一,提供了多种查询数据的方法。这些方法使得开发者能够高效地从数据库中检索、更新和删除数据,无需编写大量SQL语句。本篇文章将深入...

    hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate

    ### Hibernate 查询方式与批处理及连接池配置详解 #### 一、Hibernate 查询方式介绍 Hibernate 是一款优秀的 ORM(对象关系映射)框架,它能够极大地简化数据库操作,并提供多种查询方式来满足不同的业务需求。 #...

    Hibernate学习笔记和资料

    hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置...hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式

    通用的hibernate查询

    【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的...理解并熟练掌握这些查询方式,将有助于我们在Java开发中更好地运用Hibernate。

    hibernate中的查询方式

    ### Hibernate中的查询方式详解 #### 一、HQL查询(Hibernate Query Language) HQL是Hibernate提供的面向对象的查询语言,其语法与SQL相似但并非完全相同。HQL的一个显著优势在于它具有很好的跨数据库能力,这...

    hibernate面试题2

    9. **Hibernate查询方式**: - **SQL**:直接执行SQL查询。 - **Criteria API**:面向对象的查询方式。 - **HQL(Hibernate Query Language)**:面向对象的查询语言,支持属性、参数、关联、分页和统计函数查询...

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    Hibernate_query查询数据表中的一个字段.

    无论哪种查询方式,最后都会返回一个结果列表,你可以遍历这个列表来获取并处理查询到的`username`字段的值。 总结,Hibernate提供多种方式查询数据表中的字段,包括HQL、Criteria API和DetachedCriteria,选择合适...

    三种查询方式跟踪Hibernate源码

    本文将详细阐述通过三种查询方式跟踪Hibernate源码的方法,帮助开发者更好地掌握其工作原理。 首先,我们来看第一种查询方式:HQL(Hibernate Query Language)查询。HQL是Hibernate专有的SQL方言,允许开发者以...

    struts+hibernate查询所有记录

    ### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的企业级应用。本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有...

    hibernate多表联合查询

    在Hibernate中,可以使用以下几种方式来实现多表联合查询: - **HQL (Hibernate Query Language)** - **Criteria API** - **Native SQL** 本文将重点介绍如何使用HQL和Native SQL来实现多表联合查询。 #### 三、...

    Hibernate查询练习小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~

    hibernate查询详解

    hibernate查询详解 在Java开发中,Hibernate作为一款强大的ORM(Object-Relational Mapping)框架,极大地简化了数据库操作。本文将详细介绍Hibernate的五种查询方式,包括HQL查询、Criteria方法、动态查询...

    Hibernate查询语言HQL.PPT

    4. 使用 Hibernate 条件 API:提供了类型安全的面向对象的方式执行查询。 5. 使用本地 SQL 查询:Hibernate 只关心把 JDBC 结果集映射到持久对象图。 使用 HQL 的优点: * HQL 是一种面向对象的查询语言,易于学习...

    hibernate

    **六、Hibernate 查询方式** 1. **HQL**: Hibernate 专有的查询语言,类似SQL,但操作的是对象。 2. **Criteria API**: 动态构建查询条件,更加面向对象的查询方式。 3. **Native SQL**: 直接使用原生SQL进行查询,...

    六种方式实现hibernate查询

    六种方式实现Hibernate查询 Hibernate是一个功能强大的持久层框架,它提供了多种方式来查询数据库。下面我们将详细介绍六种方式实现Hibernate查询。 HQL查询 HQL(Hibernate Query Language)是Hibernate自己的...

    hibernate里面的 两种查询

    Hibernate提供了两种主要的查询方式:离线查询(Criteria API)和HQL(Hibernate Query Language)语句查询。这两种查询方法各有特点,适用于不同的场景,使得开发者可以根据实际需求灵活选择。 1. Hibernate ...

    hibernate实现动态SQL查询

    在Hibernate中,我们通常使用HQL(Hibernate Query Language)或Criteria API进行查询,但这些方式并不支持复杂的动态查询。为了实现动态SQL,我们可以借助于Hibernate的QBC(Query By Criteria)和Criteria API,...

Global site tag (gtag.js) - Google Analytics