`

Hibernate 实体映射文件中 写 hql/sql 语句

 
阅读更多
Hibernate 实体映射文件中 写 hql/sql 语句

在使用Hibernate做开发时,可以直接在源代码里写 HQL/SQL,也可以利用hibernate 实体映射文件中写HQL/SQL

下面介绍在实体映射文件中写HQL/SQL

实体映射文件: user.hbm.xml

<hibernate-mapping>  
    <class name="org.tie.User" table="user" catalog="tie">  
        <id name="id" type="long">  
            <column name="id" />  
            <generator class="native" />  
        </id>  
        <property name="name" type="string">  
            <column name="name" length="45" not-null="true" />  
        </property>  
        <property name="age" type="integer">  
            <column name="age" not-null="true" />  
        </property>  
        <property name="addr" type="string">  
            <column name="addr" length="45" not-null="true" />  
        </property>  
    </class>  
    <!-- 这里将Hql语句写到配置文件当中,名字是可以随便取的 --> 
    <query name="getUserInfo">  
        from User where addr=:address and age=:age   
    </query>   
</hibernate-mapping>

hibernate配置文件:hibernate.cfg.xml
	
<xml version="1.0"?>
    <DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <mapping resource="User.hbm.xml"/>
    <session-factory>
<hibernate-configuration>

java代码:
/*  
 * 另外Hibernate允许我们把 sql语句配置到文件中  
 * 因为写到程序中需要编译的,而写到配置文件中是不需要编译的   
 */ 
          
public void testHQL13(){   
    Session session = factory.openSession();   
    //这里通过getNameQuery这个方法来取得到配置文件中的hql语句   
    Query query = session.getNamedQuery("getUserInfo");   
    query.setString("address", "Beijing");   
    query.setInteger("age", 22);   
    List<User> users = query.list();   
    for(User user : users){   
        System.out.println(user.getName());   
        System.out.println("---------------");   
    }   
    session.close();   
}
分享到:
评论

相关推荐

    Java数据库技术详解 DOC简版

    第10章 Hibernate映射之实体映射 第11章 Hibernate的关联映射 第12章 HQL查询语言 第13章 Hibernate的高级特性 第14章 Hibernate结合JSP使用 第四篇 iBatis篇 第15章 iBatis概述 第16章 iBatis的特性 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 字符串模式匹配  17.2.4 逻辑运算  17.2.5 集合运算  17.3 小结...

    Hibernate实战(第2版 中文高清版)

     1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不匹配   1.2.1 粒度问题   1.2.2 子类型问题   1.2.3 同一性问题   1.2.4 与关联相关的问题   1.2.5 数据导航的问题   ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 字符串模式匹配  17.2.4 逻辑运算  17.2.5 集合运算  17.3 小结...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 字符串模式匹配  17.2.4 逻辑运算  17.2.5 集合运算  17.3 小结...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 字符串模式匹配  17.2.4 逻辑运算  17.2.5 集合运算  17.3 小结...

    Hibernate体系结构的概要图

    [Hibernate体系结构的概要图] Hibernate体系结构的概要图 Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration...它可以使用HQL语言或SQL语句两种表达方式

    hibernate总结

    b) 在内存中,如果有多个set(代理)容器需要初始化, 则当访问任何一个代理set容器时,一次初始化n个set容器,减少sql语句; c) 产生的语句是:select * from ….. where FK in (?,?,?... …n); 3. 迫切(fetch)左外...

    最全Hibernate 参考文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 ...

    Hibernate3开发.pdf

    包括:使用Hibernate实现增删改查、HQL语句、条件查询、Native SQL、批量处理 第五章:关系映射 包括:集合映射、一对一、一对多、多对多 第六章:性能提升和二级缓存 包括:抓取策略、集合的性能、二级缓存、...

    hibernate 完整教程 自学

    SessionFactory接口  SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻...它可以使用HQL语言或SQL语句两种表达方式

    Hibernate教程

    Hibernate参考文档 目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第...

    Hibernate3+中文参考文档

    5.3. SQL中引号包围的标识符 5.4. 其他元数据(Metadata) 5.4.1. 使用 XDoclet 标记 5.4.2. 使用 JDK 5.0 的注解(Annotation) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射...

    hibernate3.04中文文档.chm

    2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant编译 2.2.5. 安装和帮助 2.2.6. 加载并存储对象 2.3. 第二部分 - 关联映射 2.3.1. 映射Person类 2.3.2. 一个单向的Set-based关联 2.3.3. 使关联...

    Hibernate注释大全收藏

    上述实体映射到数据库中的时候对应 Order 实体Bean, 其具有 id, lastUpdate, lastUpdater 三个属性。如果没有@MappedSuperclass 注解,则父类中属性忽略,这是 Order 实体 Bean 只有 id 一个属性。 映射实体Bean的...

    idea-mini-ibatis.jar

    映射是从应用程序逻辑封装在XML配置文件中的SQL语句脱钩。 iBATIS是一个轻量级的框架和持久性API适合持久化的POJO(普通Java对象)。 iBATIS是被称为一个数据映射和映射需要的类的属性和数据库中的表的列之间的...

    支持多数据库的ORM框架ef-orm.zip

    EF-ORM中采用了独特的SQL解析和改写技术,能够主动检查并确保SQL语句或者SQL片段在各个数据库上的兼容性。 EF中除了Criteria API以外,可以直接使用“SQL语句”或者“SQL片段”。但是这些SQL语句并不是直接传送给...

    hibernate 框架详解

    15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order ...

    jdbc基础和参考

    2.如果找不到,get()会立即发送sql语句到数据库中查找数据,如果找到就返回,如果找不到返回null; load:(使用延迟加载策略) 1.load()方法默认要加载的对象一定存在,所以很放心的使用代理对象,等到用到的时候从...

Global site tag (gtag.js) - Google Analytics