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

hibernate学习之第五篇

阅读更多

1, oracle数据库中,user是关键字,如果用户的表名为user会引起冲突。采取的方法主要有两种:

①如果可以修改表名,最好改变表名为tuser或其他的名字,免得引起麻烦。
②如果表名不能修改,那么可以在配置文件中加上反引号,让oracle把user当做字符串处理,而不是关键字。

如下:

<hibernate-mapping package="hibernatetest">
    <class name="User" table="`user`">
        <id name="id" >
            <generator class="hilo"></generator>
        </id>
        <property name="userName"></property>
        <property name="birthday"></property>
    </class>
</hibernate-mapping>

 

同理,字段名发生冲突,也可以采用这种办法。

2,HQL
HQL,hibernate查询语言,类似于sql但与sql又有很大的不同,它是面向对象的。HQL中的对象名是区分大小写的(除了java类和属性,其他部分不区分大小写);HQL中查的是对象而不是表,并且支持多态;HQL主要通过query来操作。
例子:

·from Person
·from User user where user.name=:name
·from User user where user.name=:name and user.birthday<:birthday

 

3,query接口的使用

  public static void query(String name) {
       Session session = HibernateUtil.getSession();
        String hql = "from  User as user where user.userName=?";
        Query query = session.createQuery(hql);
        query.setString(0, name);
        List<User> list = query.list();
        for (User user : list) {
            System.out.println(user.getUserName());
        }
}

 

还可以使用命名参数的方法:只需要修改两处即可。

写道
String hql = "from User as user where user.userName=:name";
query.setString("name", name);
 

query接口的分页查询:

query接口有两个方法:query.setFirstResult(int) --设置从第几条记录开始读取, query.setMaxResults(int)--设置最多读取的记录数
各数据库的分页查询方法不同,比如mysql采取的是limit关键字,所以query接口的分页查询屏蔽了底层的数据库,实现了跨平台。

如果确认查询的结果最多有一条,则可以使用query的query.uniqueResult()方法。

4,条件查询
criteria是比HQL 更面向对象的查询方式;Criteria的创建方式:

 

Criteria crit = session.createCriteria(DomainClass.class);

 

简单属性条件约束如:

 

criteria.add(Restrictions.eq(propertyName),value);
criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName));

 

Query和Criteria作为Hinbernate数据查询接口,提供了查询条件的封装机制。

两者的不同之处在于,Query面向HQL和Native SQL,而Criteria则提供了面向对象的查询模式

分享到:
评论

相关推荐

    hibernate API帮助文档 及hibernate学习笔记

    Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。

    Hibernate学习心得

    本篇文章将基于标题"Hibernate学习心得"和提供的压缩包文件,深入探讨Hibernate的相关知识点。 首先,让我们从Hibernate的基础开始。`Hibernate第一章.txt`可能涵盖了这一主题。Hibernate是一个Object-Relational ...

    最经典的hibernate教程_从入门到精通(全四篇)

    本教程的【第一篇】将介绍Hibernate的基础知识和基本操作,【第二篇】会深入到关联映射和查询,【第三篇】涵盖性能优化和扩展性,而【第四篇】则聚焦于实际项目中的应用和问题解决。通过这四篇内容的学习,你将能够...

    经典hibernate教程_从入门到精通(第一篇,共四篇).ppt

    《经典Hibernate教程_从入门到精通》第一篇主要介绍了ORM概述和Hibernate的作用,以及Hibernate应用程序的基本结构和JDBC与Hibernate的对比。以下是详细的知识点解析: 1. **ORM概述** - ORM(Object-Relational ...

    Hibernate中文学习资料

    本篇将主要围绕`Hibernate3中文参考手册`展开,深入探讨Hibernate的基础概念、配置、实体映射、查询语言以及其他关键特性。 1. **Hibernate概述** Hibernate是一个开源的ORM框架,它提供了对Java应用程序的数据库...

    hibernate教程-从入门到精通-第4篇(共四篇)共2

    【hibernate教程-从入门到精通-第4篇(共四篇)共2】这篇教程是关于Java持久层框架Hibernate的学习指南,旨在帮助初学者深入理解并掌握Hibernate的核心概念和技术。Hibernate作为一款强大的对象关系映射(ORM)工具,...

    Hibernate学习笔记(1)

    - **第五步**:测试代码,创建一个`bbb`类,实例化`ManagerBean`并调用其方法进行添加、更新和删除操作。这展示了如何在实际应用中使用Hibernate进行数据操作。 5. **关键API介绍** - `SessionFactory`:是...

    Hibernate学习笔记(三)

    在本篇“Hibernate学习笔记(三)”中,我们将深入探讨Hibernate这一强大的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与...

    hibernate学习笔记

    **hibernate学习笔记** 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。这篇学习笔记将带你深入理解Hibernate的核心概念、配置、实体映射以及基本操作。 ## 一、...

    最经典的hibernate教程_从入门到精通_第二篇

    本教程旨在提供一个全面的Hibernate学习路径,让你能够熟练地运用Hibernate进行数据库操作,提升开发效率。通过深入学习,你将掌握如何利用Hibernate进行对象关系映射(ORM),事务管理,查询优化以及与其他技术如...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    5. 整合Spring和Hibernate:在Action类中,可以声明由Spring管理的Service层对象,这些对象再调用由Hibernate管理的数据访问层对象。这样,业务逻辑、控制逻辑和持久化操作就通过Spring的依赖注入相互关联。 6. ...

    Hibernate之第1解之-hibernate_demo_1

    【标题】"Hibernate之第1解之-hibernate_demo_1" 涉及的主要内容是对Hibernate框架的基础理解和应用,这是Java开发中一个重要的持久化工具。这篇博客可能详细介绍了如何搭建Hibernate开发环境,以及进行初步的数据...

    Hibernate中文学习文档

    本篇文档将深入探讨Hibernate的核心概念、配置、实体映射以及常用操作。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,实现了对象的持久化。通过使用...

    hibernate实践

    这篇文档集合了丰富的Hibernate实践知识,对于初学者来说是一份宝贵的资源。 1. **Hibernate核心概念** Hibernate的核心在于持久化对象,它允许我们将Java类映射到数据库表,对象的属性对应于表的列。实体类是Java...

    hibernate 3,25

    Hibernate是Java领域中一款著名的对象...尽管现在有更新的版本,如Hibernate 5.x系列,但3.2.5对于学习ORM原理和数据库操作仍然是一个不错的起点。通过深入理解和实践这些知识点,可以更好地掌握Java数据库编程技术。

    最的hibernate教程从入门到精通第一篇共四篇PPT学习教案.pptx

    【Hibernate应用程序结构】包括五个主要部分: 1. Application:应用程序本身,使用Hibernate进行数据库交互。 2. Persistent Object:持久化对象,是Java对象,它们的状态可以被持久化到数据库中。 3. hibernate....

    hibernate教程从入门到精通第篇共四篇PPT学习教案.pptx

    总的来说,这份教程旨在通过实例和练习帮助学习者熟练掌握Hibernate框架的核心功能,包括实体映射、事务管理、关联配置以及关联的自动加载。通过学习这些内容,开发者能够有效地使用Hibernate来简化Java应用程序中的...

Global site tag (gtag.js) - Google Analytics