![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
文章平均质量分 81
chinarefers
这个作者很懒,什么都没留下…
展开
-
[zt]Hibernate查询语言:HQL --ezerg
HQL:Hibernate Qusery Language,如果你已经熟悉它,就会发现它跟SQL非常相像。不过 你不要被表面的假象迷惑,HQL是面向对象的(OO,用生命的眼光看待每一个对象,他们是如此 鲜活)。如果你对JAVA和SQL语句有一定了解的话,那么HQL对你简直易如反掌,你完全可以利用在公车上的时间掌握它。以下从几个方面进行慢慢深入:1。大小些敏感大家知道Query是对大小写不敏感的,但转载 2005-01-04 14:02:00 · 459 阅读 · 0 评论 -
Hibernate Iterator JCS分析
JCS是一个对象Cache,它可以把Java对象缓存起来,提高那些访问频率很高的Java对象的存取效率。JCS是按照对象的唯一标示来存取对象的,比如说可以按照对象的hashCode来存取。对于Hibernate来说,可以利用JCS来缓存查询结果,这样当下次访问同样的数据,就无须去数据库取,直接从JCS中取出来,加快了查询速度。当Hibernate使用List或者Iterat原创 2005-01-20 16:58:00 · 539 阅读 · 0 评论 -
父子关系及inverse 详解
首先以父子关系为例: 对应生成的DDL drop table PARENT; drop table CHILD; create table PARENT (ID INTEGER not null generated by default as identity, primary key (ID)); create table CHILD (ID INTEGER原创 2005-01-20 16:58:00 · 596 阅读 · 0 评论 -
Hibernate的批量删除的效率分析
Hibernate作为ORM,有一个ORM固有的问题,就是由于为了持久对象的同步,不能够使用批量删除和批量更新的sql,只能按照主键一条条来操作。因此效率相对JDBC来说是比较低的。然而事情也并不总是那么绝望,只要你对Hibernate进行优化,也可以得到相当满意的速度。session.delete("from Cat as c where ...");该语句实际上发送sq原创 2005-01-20 16:59:00 · 683 阅读 · 0 评论 -
整合Hibernate的EJB架构分析
一、Hibernate是JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。 二、Hibernat原创 2005-01-20 17:00:00 · 724 阅读 · 1 评论 -
关于unsaved-value 的再问(robin)
ywang的提问:unsaved-value是表示一个对象是新的还是旧的,如果unsaved-value=none 那么就是新的,就会被insert到数据库中,如果unsaved-value=any 就是说明对象是从数据库中load的,被update到数据库中。我的问题是:unsaved-value是由我们来强制说明这个对象是新的还是旧的,那如果我把一个对象的unsaved原创 2005-01-20 17:01:00 · 600 阅读 · 0 评论 -
使用JDBC和Hibernate来写入Blob型数据到Oracle中
Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?这需要你先插入一个empty的blob,这将创建一个blob原创 2005-01-20 17:02:00 · 614 阅读 · 0 评论 -
用oracle的trigger生成主键的时候和hibernate冲突的讨论
oracle的trigger和hibernate冲突capitain write:我们的数据库定义mapping使用了 seq_somename 但是这样做 我发现 hibernate会取得一次sequence, 同时数据库还有一个triger会取得一次sequence, 这样实际的sequence会加2了!! 而且cre原创 2005-01-20 17:02:00 · 1192 阅读 · 0 评论 -
struts+hibernate(dao)+filter的例子
最近这一个阶段一直在研究hibernate,总感觉好象什么地方特别扭,研究一段时间,看了论坛上的各位大虾和小虾写的例子,自己也写了一个,在这里贴出来,希望得到大家的批评指正,特别是在架构上如何设计给些意见,因为对照关系如一对一,一对多的实现论坛的例子已经很清楚了. 开发环境: struts 1.1 tomcat4.1.24 hibernate2.1.2 oracle 8.16 表﹕company原创 2005-01-20 17:12:00 · 1091 阅读 · 0 评论 -
ServletFilter+ThreadLocal+DAO,10分钟Hibernate再体验
论坛上关于如何管理session的讨论已经很多了,但是因为没有一个完整的可以run的例子,很多人在这点上还是感到迷惑。今天有时间,就把自己做过的一个小例子贴出来,希望能节省后来者的学习时间。 这个例子实现了: 1. 用ThreadLocal管理session,保证了在一个thread中使用同一个session(connection) 2. 在ServletFilter中initSessionFac原创 2005-01-20 17:21:00 · 868 阅读 · 0 评论 -
父子关系的修改与删除详解
*下面要谈的delete的时候父子关系(这里谈论cacade设置中包含delete的情况) *cacade 设置的情况下,以下说明成立 remove例一: ITxMgr tx = null; tx = HibernateTxMgr.beginTrans("Delete a relationships..."); session = (Session) tx.getSession(); parent原创 2005-01-20 17:27:00 · 1324 阅读 · 0 评论 -
oracle clob问题
first friend:最初的问题表象估计和大部分的情形差不多,报告 streams type cannot be used in batching 错误。 我用了 ImmutableType 方式,定义了StringClobType extends ImmutableType 如下: java代码: public class StringClobType exten原创 2005-01-20 17:34:00 · 1454 阅读 · 0 评论 -
关于在Hibernate中高效的处理Tree结构
1:我们都知道Tree结构是RDBMS的一个死穴。 可是我们常常在实际中碰到这样的结构,比如部门结构,栏目结构.... 原来用JDBC来处理这些树结构比较简单,只要解决一个Select抓回一棵树的问题这个关键问题,然后排序一下就搞定了。 在Hibernate中,如何来高效的完成这些工作呢? 以下是一个典型的父子关系的mapping java代码: class name=原创 2005-01-20 17:47:00 · 1074 阅读 · 0 评论 -
Trees in SQL: Nested Sets and Materialized Path
Relational databases are universally conceived of as an advance over their predecessors network and hierarchical models. Superior in every querying respect, they turned out to be surprisingly incomple原创 2005-01-20 17:48:00 · 931 阅读 · 0 评论 -
spring+hibernate多层web开发eclipse下的开发模板(大愚弱智)
本人吐血奉献,内容包括: 1. xdoclet生成hbm配置文件和sql语句。 2. xdoclet生成spring的配置文件applicationContext. 3. 容器管理事务并解决延迟加载问题. 4. 解决国际化和中文问题. 5. bo、dao、business service、controller、view(jstl或jsp),一共五层结构。 6. 表单绑定、表单验证。能绑到bo的原创 2005-01-20 18:02:00 · 1526 阅读 · 1 评论 -
Hibernate为什么如此成功?
这篇文章是Gavin King写的,非常有趣,充分体现了Hibernate的设计理念,我粗略的意译如下: 下面是对Hibernate开发工作的个人想法,正是这些工作使得Hibernate如此迅速的得到广泛的欢迎。 1、飞快的版本发布 保持活跃的开发速度,经常进行版本发布,甚至几天之内就从前一个版本开发到下一个版本。这样是保证软件远离Bug的最好的办法,也可以让用户感到很原创 2005-01-20 16:57:00 · 459 阅读 · 0 评论 -
many-to-many
Work.javapackage com.javamodel.hibernate;import java.util.HashSet;import java.util.Set;public class Work { private String id = null; private String title = null; private原创 2005-01-20 16:45:00 · 553 阅读 · 0 评论 -
update和saveOrUpdate详解(robin)
在Hibernate中,最核心的概念就是对PO的状态管理。一个PO有三种状态:1、未被持久化的VO此时就是一个内存对象VO,由JVM管理生命周期2、已被持久化的PO,并且在Session生命周期内此时映射数据库数据,由数据库管理生命周期3、曾被持久化过,但现在和Session已经detached了,以VO的身份在运行这种和Session已经detached的PO还能够进入另原创 2005-01-20 16:35:00 · 522 阅读 · 0 评论 -
HQL的返回值该怎么取得?(robin)
很多人搞不清楚怎么取得HQL的返回值,下面举例说明:取单个字段,会返回字段List:Query q = s.createQuery("select c.id from Cat as c");List l = q.list();for (i=0; i< l.size(); i++) { Long id = (Long) l.get(i); System.原创 2005-01-20 16:40:00 · 553 阅读 · 0 评论 -
在Weblogic上配置Hibernate为JNDI
一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚本文件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。我机器上的有个Hibernate的项目,在D:/test/oracle目录下,该目录下的结构是:原创 2005-01-20 16:55:00 · 435 阅读 · 0 评论 -
Hibernate的JNDI绑定分析
Hibernate的JNDI名称绑定是在net.sf.hibernate.impl.SessionFactoryObjectFactory程序里面实现的,我来分析一下Hibernate的绑定JNDI的过程:我们获得SessionFactory一般是这样写代码:Configuration conf = new Configuration().addClass(Cat.class)原创 2005-01-20 16:55:00 · 459 阅读 · 0 评论 -
Hibernate入门 - Transaction
Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装,下面我们详细的分析:Hibernate可以配置为JDBCTransaction或者是JTATransaction,这取决于你在h原创 2005-01-20 16:56:00 · 535 阅读 · 0 评论 -
用户自定义ID Generator的例子(JavaJason)
用户自定义ID Generator的例子 POpackage com.dsii.hibernate.po;public class Company { private String id; private String name; private String year; public Company() { }原创 2005-01-20 16:39:00 · 883 阅读 · 0 评论 -
Hibernate 动态Update的问题
有人提出Hibernate在 update持久对象的时候,产生的sql语句是把所有的属性统统set一遍,这样会造成update操作效率很低。Hibernate默认情况下总是在初始化的时候静态生成sql语句,因此不能动态update。但是Hibernate也可以配置为动态产生update和insert语句。<class name="ClassName"原创 2005-01-20 16:47:00 · 1296 阅读 · 2 评论 -
one-to-many
one to many时,两端都需要描述。Publication.javapackage com.javamodel.hibernate;public class Publication { private String id = null; private String bookName = null; private String dataTi原创 2005-01-20 16:43:00 · 568 阅读 · 0 评论 -
Hibernate分页查询原理解读
Hibernate 可以实现分页查询,例如:从第2万条开始取出100条记录Query q = session.createQuery("from Cat as c");q.setFirstResult(20000);q.setMaxResults(100);List l = q.list();那么Hibernate底层如何实现分页的呢?实际上Hibernat原创 2005-01-20 16:48:00 · 598 阅读 · 0 评论 -
POJO 与 PO的 概念
POJO = pure old java object or plain ordinary java object or what ever.PO = persisent object 持久对象就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有原创 2005-01-20 16:51:00 · 478 阅读 · 0 评论 -
在filter里关闭session
package com.upstate.cellculture.om.persist;import net.sf.hibernate.HibernateException;import net.sf.hibernate.JDBCException;import net.sf.hibernate.Session;import net.sf.hibernate.Sess原创 2005-01-20 17:04:00 · 701 阅读 · 0 评论 -
CLOB字段的存取
采用得是ORACLE9i数据库,Jboss或Weblogic。 JDBC采用ORACLE9i自带的Class12.jar ------------- 数据库结构: java代码: CREATE TABLE SNCPARAMETERS ( ID NUMBER(19) NOT NULL, SNCID原创 2005-01-20 17:36:00 · 776 阅读 · 0 评论 -
Hibernate树型结构的算法,附源码! (dhj1)
1:代码还没调试过,刚写出来! java代码: package com.yours.tree; import java.util.List; import java.util.Iterator; import org.apache.log4j.Logger; import net.sf.hibernate.Hibernate; import net.sf.hiberna原创 2005-01-20 17:44:00 · 1346 阅读 · 0 评论 -
在虚拟主机上让Jive论坛和Hibernate共享一个数据库连接池(流水)
背景:在一台虚拟主机上(TOMCAT)已经运行了jive论坛(使用自带的数据库连接池),现在想在此虚拟主机上安装Hibernate.问题:由于jive和Hibernate都需要使用数据库连接池,如何让它们共享一个连接池。一种解决办法:由于jive和Hibernate都支持通过JNDI来查找一个连接池实例,因此为虚拟主机配置一个数据库连接池并把它绑定到JNDI上即可。由于原创 2005-01-20 16:42:00 · 713 阅读 · 0 评论 -
one-to-one
Author.javapackage com.javamodel.hibernate;public class Author{ private String id ; private String alias = null; private Person person = null; /** * @return原创 2005-01-20 16:43:00 · 547 阅读 · 0 评论 -
用hibernate对递归数据的操作
在工作中,我们常常会碰到具有递归性质记录的数据,最常见的是某个机构部门节点的数据,某个节点一定会有个父节点属性,同时它也许会有若干子节点。所有的节点数据都会存在数据库中一张表中。这种现象在设计模式上叫Composite模式。下面我就给出一个用hibernate操作这种表的例子,关于hibernate配置和建立表结构的部分请参考我的前一篇文章《利用weblogic的数据源作为hibernate的数据原创 2005-01-25 09:43:00 · 653 阅读 · 0 评论