Hibernate HQL详解】的更多相关文章

版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5606444.html  1.实体查询: hql="FROM User"; List list= session.createQuery(hql).list(); for(Object obj:list){ System.out.println(obj);  } [注意]:HQL语句中关键字不区分大小写,但是实体类和对象属性要区分大小写 2.查询某个对象的某…
关键字: hibernate expression hibernate Expression详解Expression.gt:对应SQL条件中的"field > value ".如:Expression.gt("salary", new Integer(5000))Expression.ge:对应SQL条件中的"field >= value".Expression.lt:对应SQL条件中的"field < value&q…
转载地址:http://blog.sina.com.cn/s/blog_692d0a650100xyqx.html Hibernate配置属性 hibernate.dialect:一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL.取值full.classname.of.Dialect(详解见下) hibernate.show_sql:输出所有SQL语句到控制台,有一个另外的选择是把org.hibernate.SQL这个log category设…
在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置.核心API的底层实现和源码解析将在以后的博客中一一为大家讲解. 首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒): •创建Hibernate的配置文件 •创建持久化类 •创建对象-关系映射文件 •通过Hibernate API编写访问数据库的代码 关于配置…
Hibernate配置方式 Hibernate给人的感受是灵活的,要达到同一个目的,我们可以使用几种不同的办法.就拿Hibernate配置来说,常用的有如下三种方式,任选其一. 在 hibernate.cfg.xml 中加入元素 <property>.<mapping>,放置在类路径(classpath)的根目录下. 将 hibernate.properties 放置放在类路径的根目录下. 可编程的配置方式,即在程序中配置Hibernate的启动参数.加载映射文件,需要用Confi…
<!-----------------hibernate二级缓存ehcache------------------------->hibernate配置 <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop…
<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性. hibernate.sourceforge.net/hibernate-…
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更 加面向对象的封装.完整的HQL语句形势如下: Select/update/delete…… from …… where …… group…
学习Hibernate ,我们首先要知道为什么要学习它?它有什么好处?也就是我们为什么要学习框架技术? 还要知道    什么是Hibernate?    为什么要使用Hibernate?    Hibernate的配置文件的作用是什么?          Hibernate映射文件的作用是什么?     Hibernate持久化对象的状态有哪些? 现在我先上面的问题解决了. 一.我们为什么要学习框架技术? 1.框架技术有哪些? 在Java开发中,我们经常使用Struts.Hibernate和Sp…
hibernate.generate_statistics 这个配置大家应该都很熟悉,用于开启Hibernate统计信息,便于对Hibernate相关性能调试提供数据依据.在开发过程当中,可以把这个选项设置为true. 下面主要再来看看Statistics的一些用法: 首先看看Statistics的体系结构:可以通过SessionFactory.getStatistics()方法得到Statistics对象,然后就可以通过Statistics得到相关的细节的统计信息: 其中: Statistic…
前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式-.到目前为止,我们都是使用一些简单的主键查询阿-使用HQL查询所有的数据-.本博文主要讲解Hibernate的查询操作- get/load主键查询 由于主键查询这个方法用得比较多,于是Hibernate专门为我们封装了起来- get()立即查询 load()懒加载 对象导航查询 如果对象与对象之前存在一对多.多对一的关系的时候 在以前SQL查询的时候:我们如果想要得到当前对象与另一对象的关联关系的时候,就必须用多…
一:引入Hibernate的jar包 http://t.cn/EioD1xk 二:配置Hibernate的核心配置文件hibernate.cfg.xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&…
1.缓存介绍 Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存.这一级别的缓存由hibernate管理的,一般情况下无需进行干预:第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存.这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载. Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存. 一. 一级缓存和二级缓存的比较: 第一级缓存和第二级缓是存放数据的形式是以相互关联的持久化…
Hibernate是对象/关系映射(ORM,Object/Relational Mapping)的解决方案,就是将Java对象与对象关系映射到关系型数据库中的表格与表格之间的关系.它是Java应用与关系数据库之间的桥梁,负责Java对象和关系数据之间的映射.Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API. Hibernate的体系结构 Hibernate通过配置文件( hibernate.cfg.xml )和映射文件( *.hbm.xml )…
hibernate中提供了两级缓存,一级缓存是Session级别的缓存,它属于事务范围的缓存,该级缓存由hibernate管理,应用程序无需干预:二级缓存是SessionFactory级别的缓存,该级缓存可以进行配置和更改,并且可以动态加载和卸载,hibernate还为查询结果提供了一个查询缓存,它依赖于二级缓存: 一.什么是缓存 缓存是位于应用程序和永久性数据存储源之间用于临时存放复制数据的内存区域,缓存可以降低应用程序之间读写永久性数据存储源的次数,从而提高应用程序的运行性能: hibern…
一.实体Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明. 声明实体Bean @Entitypublic class Flightimplements Serializable {  Long id;  @Id  public Long getId() { return id; }  public void setId(Long id) { this.id = id; }} @Entity 注解将一个类声明为实体Bean, @Id 注解声…
一,环境的搭建 1)创建maven项目 2)导入依赖的jar包.pom.xml和创建实体类User <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo…
原博客地址:http://blog.csdn.net/sufei58/article/details/48223731 我只是收藏来方便自己查阅的,希望博主不要介意 一.实体Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明. 声明实体Bean @Entitypublic class Flightimplements Serializable {  Long id;  @Id  public Long getId() { return id…
hibernate介绍: Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 它不仅提供了从java类到数据库表之间的映射,也提供了数据查询和恢复机制.相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少 操作数据库的工作量.另外Hibernate可以利用代理模式简化载入类的过程,这将大大减少利用Hql从数据库提取数据的代码编写量,从而节约开发时间 和开发成本Hibernate可以…
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring…
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring…
7) hibernate.max_fetch_depth: 该属性用于设置left out join单对象查询关系(one-to-one/many-to-one)中最大的关联深度.默认值为0,即默认情况不使用out-join(而使用延迟加载),建议的取值为0-3之间. 要理解max_fetch_depth属性,就必须要理解在one-to-one/many-to-one元素上的out-join属性.我们用下面的一个例子来说明: public class Department { private L…
6) hibernate.session_factory_name: 配置一个JNDI名称,通过Configuration对象创建的SessionFactory会绑定到JNDI下该名称中.一般名字格式为jndi/someName.注意,要使用JNDI,需要在具有JNDI功能的环境之中,比如WEB容器或者EJB容器中. 下面再tomcat中做一个示例,首先在一个标准的WEB项目中添加hibernate的一些基本功能,接着在hibernate.properties文件中添加: hibernate.s…
9) hibernate.batch_fetch_style: 该配置是hibernate4.2.0新添加的,使用这个设置可以配置hibernate在做batch-fetch的时候,生成SQL的策略.该配置项的可选值为org.hibernate.loader.BatchFetchStyle这个枚举类型中的可选值.所以,目前有三个选项:LEGACY,PADDED和DYNAMIC.下面分别介绍: 1,LEGACY:该批量抓取样式从一个预定义的数组中获取指定的匹配的个数来包装in后面的问号的个数,这个…
hibernate.cache.use_structured_entries Hibernate文档上介绍,该属性是用于把对象以一种更易读的方式放到二级缓存中,这样,在对二级缓存进行监控的时候就更容易理解放到二级缓存中对象的内容.只需要简单的设置 hibernate.cache.use_structured_entries true 即可. 那这个属性到底有什么作用呢?先简单看一下效果:准备数据代码和映射文件在前面一篇帖子中有: http://blog.csdn.net/stefwu/artic…
hibernate.hbm2ddl.import_files_sql_extractor 这个配置项用于补充这篇文章: http://blog.csdn.net/stefwu/article/details/10584161 在这篇文章中,我们提到,如果使用了自己的SQL文件,在SQL文件中的SQL就只能是一条SQL一行,不能格式化.如果你的SQL是格式化了的,或者在你的SQL里面甚至有特殊的内容需要处理之后才能执行,那么你只需要配置一个hibernate.org.hibernate.tool.…
hibernate.hbm2ddl.import_files 这个配置用于在hibernate根据映射文件执行DDL之前,如果我们自己设置了要事先运行的SQL文件,hibernate就会先执行这些SQL文件.比如,在classpath下面任意创建一个SQL文件:ddl.sql,然后添加: create table CC(id bigint(19) primary key auto_increment,name varchar(255)); 接着配置: #也可以写成/ddl.sql hiberna…
hibernate.order_updates: Hibernate文档中提到,该配置用于在刷新一级缓存,提交UPDATE的时候,按照每类对象的主键顺序排序后再提交,可以在高并发情况下减少事务死锁的可能.这个配置默认为false,但是非常建议在可能存在高并发情况下开启,因为其实按照类型ID排序(在内存中),并不会消耗过多性能.那么这个配置到底什么含义呢?做个简单的测试. 首先准备一个对象User,完成映射(略),完成下面的测试: @Before public void save(){ Sessi…
hibernate.session_factory_name_is_jndi 配置hibernate.cfg.xml中SessionFactory的name属性是否作为JNDI名称绑定.默认是true,即默认情况下,只要给SessionFactory配置了name属性,Hibernate就会把这个名字绑定到JNDI上.关于这个的配置,请看: http://blog.csdn.net/stefwu/article/details/10186077 如果设置了 Hibernate.session_f…
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring…