`
zengshaotao
  • 浏览: 787539 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate 查询例子

 
阅读更多

import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import junit.framework.TestCase;

/**
 * 条件查询
 * @author Administrator
 *
 */
public class SimpleConditionQueryTest extends TestCase {

 public void testQuery1() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   //可以拼字符串
   List students = session.createQuery("select s.id, s.name from Student s where s.name like '%1%'").list();
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }
 
 public void testQuery2() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
//   Query query = session.createQuery("select s.id, s.name from Student s where s.name like ?");
//   query.setParameter(0, "%1%");
//   List students = query.list();
   
   //可以使用?方式传递参数
   //参数的索引从0开始
   //传递的参数值,不用单引号引起来
   //注意方法链编程
   List students = session.createQuery("select s.id, s.name from Student s where s.name like ?")
               .setParameter(0, "%1%")
               .list();
   
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 } 

 public void testQuery3() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   //使用 :参数名称 的方式传递参数值
   List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname")
               .setParameter("myname", "%1%")
               .list();
   
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }  
 
 public void testQuery4() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   //使用 :参数名称 的方式传递参数值
   List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname and s.id=:myid")
               .setParameter("myname", "%1%")
               .setParameter("myid", 12)
               .list();
   
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }
 
 public void testQuery5() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   //支持in,需要使用setParameterList进行参数传递
   List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
         .setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
               .list();
   
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }   

 public void testQuery6() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   //查询2008年2月创建的学生
   List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
         .setParameter(0, "2008-02")
               .list();
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }   

 public void testQuery7() {
  Session session = null;
  try {
   session = HibernateUtils.getSession();
   session.beginTransaction();
   
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   
   //查询2008-01-10到2008-02-15创建的学生
   List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ?")
         .setParameter(0, sdf.parse("2008-01-10 00:00:00"))
         .setParameter(1, sdf.parse("2008-02-15 23:59:59"))
               .list();
   for (Iterator iter=students.iterator(); iter.hasNext();) {
    Object[] obj = (Object[])iter.next();
    System.out.println(obj[0] + "," + obj[1]);
   }
   session.getTransaction().commit();
  }catch(Exception e) {
   e.printStackTrace();
   session.getTransaction().rollback();
  }finally {
   HibernateUtils.closeSession(session);
  }
 }   
}

分享到:
评论

相关推荐

    Hibernate 经典例子全

    **标题:Hibernate经典例子全** **内容:** Hibernate是一款强大的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而无需过多关注底层的SQL语句。本资源包含了一系列的Hibernate实例,旨在...

    Hibernate实践例子程序

    Hibernate 是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,...

    hibernate的第一个例子

    **标题解析:**“hibernate的第一个例子”表明这是一个关于Hibernate框架的基础教程,主要目标是展示如何使用Hibernate进行数据持久化操作。 **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象...

    Hibernate查询练习小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的实体类,打开之后直接在项目中练习查询就行。Hibernate和JPA方式都有了。 项目需求: 1. jdk8(因为用到了lambda表达式)。 2. ...

    android hibernate demo例子

    在这个"android hibernate demo例子"中,开发者可能使用了一个特殊的方法或者第三方库来使Hibernate在Android上运行。 这个"OrmDemo"项目包含以下关键组件: 1. **实体类(Entity Classes)**:这些是与数据库表...

    hibernate+struts实现数据库查询的例子

    这个“hibernate+struts实现数据库查询的例子”是针对初学者的一个实践教程,旨在展示如何整合这两个框架来实现数据库的查询操作。下面将详细介绍这两个框架及其整合使用的方式。 `Hibernate`是Java平台上的一款...

    Hibernate 的第一个例子

    Hibernate 支持CRUD(创建、读取、更新、删除)操作,并提供了查询语言HQL(Hibernate Query Language)以及Criteria API,用于执行复杂的数据库查询。 **二、环境准备** 在开始Hibernate的例子之前,确保你的开发...

    JavaEE Spring Hibernate框架例子.rar

    JavaEE Spring Hibernate框架例子JavaEE Spring Hibernate框架例子JavaEE Spring Hibernate框架例子JavaEE Spring Hibernate框架例子JavaEE Spring Hibernate框架例子JavaEE Spring Hibernate框架例子JavaEE Spring ...

    一个很简单的hibernate例子

    7. HQL(Hibernate Query Language)或 Criteria API:这两者是Hibernate提供的查询语言,用于替代SQL,使得数据库查询更加面向对象。 现在,让我们看一个简单的使用流程: 1. 加载配置:程序启动时,首先加载`...

    Hibernate查询小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的实体类,打开之后直接在项目中练习查询就行。 项目需求: 1. jdk8(因为用到了lambda表达式)。 2. Eclipse或者IDEA开发环境,...

    Hibernate登陆例子

    在Java Web开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更专注于业务逻辑而不是底层SQL查询。本示例将详细介绍如何使用Hibernate实现一个登录功能,适用于初学者...

    JavaEE Hibernate框架例子.rar

    JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录例子 JavaEE Hibernate框架登录...

    hibernate登录小例子

    【hibernate登录小例子】是一个面向初学者的教程,主要展示了如何利用Hibernate框架实现一个简单的用户登录功能。在这个例子中,我们将深入探讨Hibernate的基本概念、配置、实体类的创建、映射文件的编写以及Session...

    hibernate小例子.rar

    这些例子可能涵盖从基本配置到复杂查询的各个方面,帮助初学者或开发者快速上手。 【标签】:“hibernate”表明这是关于Hibernate框架的内容,“例子”意味着这是一系列实践操作,而“rar”则表明文件格式为RAR压缩...

    hibernate入门例子

    hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子

    Spring Hibernate 集成的例子

    标题“Spring Hibernate集成的例子”暗示我们将探讨如何将这两个框架整合到一个项目中,实现数据访问层与业务逻辑层的无缝对接。这个例子可能是通过创建一个简单的Java项目,然后引入Spring和Hibernate的相关库,...

    HIbernate购物车例子,实现增删改查

    本教程通过一个购物车的例子,深入浅出地讲解了如何利用Hibernate实现增删改查(CRUD)的基本功能。 1. **Hibernate简介**:Hibernate是一个开源的ORM框架,它的主要作用是将Java对象与数据库中的表进行映射,从而...

    hibernate框架相关的例子

    **hibernate框架详解** ...这个“hibernate框架相关的例子”为初学者提供了一套实践学习的资源,涵盖了从基本配置到复杂查询的各个层面。在实际项目中,熟练掌握Hibernate不仅能提高开发效率,还能有效降低维护成本。

    strut2+hibernate简单例子

    在本"struts2+hibernate简单例子"中,我们将学习以下关键知识点: 1. **Struts2配置**:首先,我们需要配置Struts2的核心文件`struts.xml`,定义Action类、结果类型以及拦截器栈。这包括设置包、添加Action元素,...

Global site tag (gtag.js) - Google Analytics