![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
文章平均质量分 73
yuancandy
这个作者很懒,什么都没留下…
展开
-
在hibernate中查询一个时间段的数据方法总结
这是在一个群里讨论的问题。 方法很多:如果说数据库中数据的存储是用date类型的话,改怎么做,如果说做数据迁移的话又该怎么做? 最终的讨论方案在用字符串存储格式上比较好,毕竟各个数据库对时间的存储存在差异。 一下是我用Hibernate中的HQL,和QBC两种检索方式对一段时间内的数据进行检索。 1 package com.duduli.li; 2 3 import Java....原创 2011-05-01 10:05:33 · 726 阅读 · 0 评论 -
Hibernate详解(四)---->>关联关系映射(一)
关联关系是在领域模型建模中经常使用到的一种关系,它是对现实世界中事物之间的关系最基本的表示。 关联关系指的是不同持久化类之间的一种结构关系,简单的说,关联关系描述某个对象在一段时间内一直知道另一个对象的存在。 关联关系包括多样性的关联和方向性的关联。 Hibernate 框架作为一种 ORM 技术的实现,对关联关系的映射实现得很完美,也易于理解和掌握,...原创 2011-05-02 09:27:45 · 75 阅读 · 0 评论 -
Hibernate详解(四)---->>关联关系映射(二)
3、单向一对一 每个中国公民都有一张身份证,这就是典型的一对一关联关系。首先,讨论单向的一对一,即只考虑从公民这一端能找到它的身份证,而身份证这一端不知道公民的存在。 有两种常用的方式可以表示这种一对一关系:基于唯一外键关联方式和基于主键关联方式。方式一:基于外键关联方式 Citizen.java Java代码 package c...原创 2011-05-02 09:29:46 · 66 阅读 · 0 评论 -
hibernate详解(三)----->>组件映射(二)之复合主键
3、组件类作为持久化类的对象标识符属性 这种情况主要是针对已经数据库表建模时,由于数据库表中采用联合自然主键(复合自然主键),为了完成这种映射需求,Hibernate使用组件类把它映射成持久化类的对象标识符。 Hibernate要求,作为复合对象标识符类的UserOid类必须实现Java.io.Serializable,且要用作为复合标识符的属性重写hashCode(...原创 2011-05-02 09:31:11 · 110 阅读 · 0 评论 -
hibernate详解(三)----->>组件映射(一)
Hibernate建议在进行领域模型建模时要细粒度一些,简单地说,就是类要比表多,这种映射方式就是组件(component)映射。 组件类是值类型的,即它没有对象标识符属性,在数据库中也没有对应的表,它只隶属于另一个持久化类的实例。它的数据被嵌入到所隶属的持久化实例对应的数据库表的记录中。 组件映射的应用有三种常见情况:把组件类作为持久化类的单个属性来使用、把组件类...原创 2011-05-02 09:33:10 · 70 阅读 · 0 评论 -
hibernate详解(二)----->>继承关系映射(二、三)
这篇文章紧接着hibernate详解(二)----->>继承关系映射(一)。 下面介绍另外两种关系继承关系映射方案: 第二种:每个子类一张表 其他的类都一样,就有一个xml文件不一样,里面有些内容不一样 Student.hbm.xml Xml代码 <?xml ...原创 2011-05-02 09:33:41 · 78 阅读 · 0 评论 -
hibernate详解(二)---->>继承关系映射(一)
继承是面对对象编程中一个很重要的特征,在做面对对象的分析和设计时,经常会设计出具体继承关联的持久化类,如何把这些持久化类之间的继承关系映射到关系数据库上的问题已经解决,继承在对象模型中是 is a(是一个)的关系,但是在关系模型中,实体之间只有has a(有一个)的关系,也就是说,继承在对象模型和关系模型上是不匹配的。所幸的是,hibernate提供了3种常见的...原创 2011-05-02 09:34:45 · 80 阅读 · 0 评论 -
Hibernate详解(一)------->>入门
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完...原创 2011-05-02 09:35:52 · 78 阅读 · 0 评论 -
hibernate优化
口诀 1、使用双向一对多关联,不使用单向一对多 2、灵活使用单向多对一关联 3、不用一对一,用多对一取代 4、配置对象缓存,不使用集合缓存 5、一对多集合使用Bag,多对多集合使用Set 6、继承类使用显式多态 ...原创 2011-05-02 09:56:56 · 75 阅读 · 0 评论 -
hibernate fetch 和lazy
经过测试发现Hibernate annotation中@ManyToOne,@OneToMany,@OneToOne中lazy的默认值是不同的 @OneToMany 默认Lazy为true @ManyToOne,@OneToOne 默认lazy为false 在设置@ManyToOne的时候我们一般都会设置Lazy=true 一般不会在@ManyToOne,@OneToOne考虑这个问题 ...原创 2011-05-02 19:42:06 · 94 阅读 · 0 评论 -
hibernate的二级缓存
Hibernate二级缓存也称为进程级的缓存或SessionFactory级的缓存。二级缓存是全局缓存,它可以被所有的session共享。二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存。二级缓存的配置使用:1.在crc下创建echcache.xml文件,其内容如下:<ehcache> <diskStore ...原创 2011-05-02 08:58:58 · 69 阅读 · 0 评论 -
全面讲解Hibernate二级缓存
在向大家详细介绍Hibernate二级缓存之前,首先让大家了解下一级缓存,然后全面介绍Hibernate二级缓存。Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由 hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可...原创 2011-05-02 08:56:56 · 68 阅读 · 0 评论 -
HQL返回值
Hibernate查询单个字段,Hibernate把每个id做成一个元素的一维数组,List存放的是一维数组。 Query query = s.createQuery("select u.id from User as u"); List list = query.list(); for (i=0; i< list.size(); i++) { Long id...原创 2011-05-01 18:35:11 · 116 阅读 · 0 评论 -
hibernate中只选取某些列的写法
在普通的sql中,为了选取某些列,其实是很简单的,就select 列名就可以了,但在hibernate中,一般都是sql="from user ....";但这样其实某些时候,效率还是很低的,在hibernate做的时候,要这样了,如下:String hql="select new map(t.title as title,t.id as id,t.link as link,t.linkti...原创 2011-05-01 18:44:19 · 76 阅读 · 0 评论 -
hibernate 之inverse重点复习
inverse的原因,在于单向的一对多的低效而造成的.举个例子,比如user表和books表,一个用户假定可以有很多书,行成一对多的关系. 1) 如果是单向的一对多,比如 在user.hbm.xml中 有<set name="books" table="books" ....> <key column="user_id"> ...原创 2011-05-01 20:00:53 · 59 阅读 · 0 评论 -
Spring中配合hibernate使用的简单例子
最近在看SPRING和hibernate,学习了spring和hibernate之间整合,下面举出一个例子予以说明. 首先,可以注入的是sessionfactory,因为sessionfactory的Datasource可以用spring注入.比如一个下面的例子,是对对象进行增加的接口IUserDAO:public interface IUserDAO { public voi...原创 2011-05-01 20:42:52 · 69 阅读 · 0 评论 -
hibernate----Inverse 和 cascade区别
Inverse 和 cascade的区别 实际上,他们是互不相关的概念: inverse是指的关联关系的控制方向,而cascade指的是层级之间的连锁操作。 级联删除 在默认情况下,当Hibernate删除一个持久化对象时,不会自动删除与他关联的其他持久化对象,如果希望Hibernate删除Customer对象时,自动删除和Customer关联的Order对象,可以把cascade的属性设置为de...原创 2011-05-02 08:15:22 · 76 阅读 · 0 评论 -
Hibernate Criteria Query
Hibernate-Criteria Query 收藏 Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如:Criteria criteria = session.createCriteria(User.class);criteria.add(Expression.eq("name"...原创 2011-05-02 08:34:05 · 75 阅读 · 0 评论 -
hibernate关联
Hibernate关联关系 收藏 在域模型钟,类与类之间最普遍的关系就是关联关系。例如,客户(Customer)和订单(Order)的关系,一个客户能发出多个订单,耳一个订单只能属于一个客户。从Order到Customer的关系是多对一关系,意味着每个Order对象都会引用一个Customer对象,下面就以Customer和Order之间的关系例子来介绍关联关系。 一, 一...原创 2011-05-02 08:35:58 · 60 阅读 · 0 评论 -
hibernate连接池
我分别用以下链接方式测试了一下:tomcat自带的连接池<property name="connection.datasource">java:comp/env/jdbc/mysqlds</property>JDBC直接连接<property name="hibernate.connection.url">jdbc:mysql://localhost:3333/...原创 2011-05-02 08:49:33 · 60 阅读 · 0 评论 -
hibernate工作原理及为什么要使用
Hibernate工作原理及其作用Java学习笔记 2010-04-15 11:06:57 阅读156 评论0 字号:大中小 订阅 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交...原创 2011-05-02 08:51:20 · 72 阅读 · 0 评论 -
hibernate五大核心接口及其应用
所有的Hibernate应用中都会访问Hibernate的5个核心接口。 Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。 SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。 Session接口:负责保存、更新、删除、加载和查询对象。 Transa...原创 2011-05-02 20:28:59 · 136 阅读 · 0 评论