Hibernate
文章平均质量分 78
macower
这个作者很懒,什么都没留下…
展开
-
Hibernate session浅见(1)
众所周知,session接口是Hibernate中最重要的接口之一。位于org.hibernate(都是些主要接口)包下。session 具有一个缓存,位于缓存中的对象我们就称之为:持久对象。他和数据库之中的相关记录相对应。session能够在某个时间点按照缓存中的对象的变化来执行相关的SQL语句,以此来与数据库进行同步,这个过程我们称之为flush,在session当中有对应的方法flush()进行缓存的清除。下面分析下Session的几大作用:1:session 是Hibernate中的一级原创 2010-07-08 01:59:00 · 1001 阅读 · 0 评论 -
Hibernate 检索方式简介 2
本问将介绍 * 使用别名查询 * 分页查询 * 排序* 检索单个对象 * 按主键逐个查询 * 对滚动结果集查询首先介绍下别名的几个方式 /** * 使用别名查询 * * @throws Exception */ @SuppressWarnings("unchecked") public void testQueryByAlias() throws Exception { Session session = HibernateUtils.getSession()原创 2010-07-18 21:38:00 · 567 阅读 · 0 评论 -
Hibernate 检索方式简介 1
<br />在开发应用程序的时候,通常需要要用到hibernate到数据库中检索对象,hibernate提供了丰富的检索方式,具体有以下几种:<br />1 :导航对象的方式<br />2 :OID的方式进行检索<br />3 :HQL检索<br />4 :QBC检索方式<br />5:本地的SQL方式检索<br /> <br />下面将一一介绍这五种方式<br />1 :导航对象的方式就是我们常常用到的 "."的方式进行检索。例如 customer.orders的方式。这个很简单。<br />2:OID的原创 2010-07-18 21:09:00 · 566 阅读 · 0 评论 -
Hibernate的事务和并发控制
Hibernate的事务和并发控制很轻易把握。Hibernate直接使用JDBC连接和JTA资源,不添加任何附加锁定 行为。除了自动版本治理,针对行级悲观锁定,Hibernate也提供了辅助的API,它使用了 SELECT FOR UPDATE的SQL语法。本章后面会讨论这个API。 我们从Configuration层、SessionFactory层, 和 Session层开始讨论Hibernate的并行控制、数据库事务和应用 程序的长事务。 Session和事务范围(transaction scope转载 2010-07-19 15:15:00 · 2718 阅读 · 1 评论 -
Hibernate 检索策略详解 (3)
<br />one-to-one many-to-one 的检索策略介绍<br /> <br />package com.macower.hibernate.strategy; import java.util.Iterator; import java.util.List; import junit.framework.TestCase; import org.hibernate.Session; public class OrderManyOneTest extends TestCase {原创 2010-07-18 16:20:00 · 478 阅读 · 0 评论 -
Hibernate 检索策略详解 (1)
Hibernate 检索策略详解 (1) 在session 的缓存中可以存放关联的对象图,当数据库从查询一个对象的时候如果同时自动加载其关联的对象,而程序此时不需要处理其关联的对象的时候,那么就白白浪费了许多的内存资源。所以hibernate通过其检索策略解决了实际运用的效率问题。其提供了丰富的检索策略。下面就结合具体的测试源码讲述其基本原理及其优化策略。先准备环境 1: junit3.8.jar 2: mysql.jar 3: hibernate相关的包Customer 类package co原创 2010-07-15 20:12:00 · 582 阅读 · 0 评论 -
Hibernate映射组成关系简析
假设我们需要创建一个下面这样的表:表customers Address.javapackage com.macower.hibernate.component; public class Address implements java.io.Serializable { private static final long serialVersionUID = 8360724596866619108L; private String province; priv原创 2010-07-14 21:14:00 · 671 阅读 · 0 评论 -
Hibernate session浅见(3)
<br /> 程序通过Hibernare来加载保存修改删除或者是更新数据的时候,可能会导致数据库层的一些触发器引起相关的操作,也可能会引发Hibernare拦截器的一些相关操作。<br /> <br /> <br /> 我们知道Hibernare按照常规的方式进行批量的操作会导致大量的持久化对象加载到内存当中,从而消耗大量的内存空间,极有可能会导致内存的空间的不足而产生错误。<br /> <br /> 数据库中的出发器在与Hibernare协同工作的时候可能会带来许多负面的问题:<br /原创 2010-07-10 22:11:00 · 881 阅读 · 0 评论 -
Hibernate 模拟触发器---利用拦截器生成日志
数据库通常用触发器生成审计日志,这种办法简便并且有着良好的性能,缺点也是十分明显的典型的一个特点是:不支持跨平台。在Hibernare中也有类似触发器的东西,我们可以这样类比,他就是我们熟悉的拦截器----intercept。Intercept位于org.hibernate.Intercept中源码及其注释如下:package org.hibernate; import java.io.Serializable; import java.util.Iterator; import org.hibern原创 2010-07-12 17:14:00 · 2069 阅读 · 0 评论 -
Hibernate session浅见(2)
<br />Session 接口是Hiberante面向应用程序提供的操作数据库的主要接口,他提供了基本的对象的保存 更新 修改 删除 和加载java对象的方法。<br />Session具有一个缓存。位于缓存中的对象我们称之为 持久化对象,持久化对象和数据库中的相关对西哪个想对应,Session能够在某个时间点按照缓存中的对象的变化来执行相关的SQL,来同步更新数据,上一节《Hibernate session浅见(1)》有讲到。<br /> <br />理解Session的缓存机制,就必须了解数据在Hib原创 2010-07-09 13:54:00 · 495 阅读 · 0 评论 -
几种典型的数据库配置Hibernate参数
<br />MYSQL配置Hibernate url=jdbc:mysql://127.0.0.1:3306/trade Driver=com.mysql.jdbc.Driver username=root password=root Oracle配置Hibernate url=jdbc:oracle:thin:@127.0.0.1:1521:ORCL Driver=oracle.jdbc.driver.OracleDriver username=cooole password=root原创 2010-09-07 20:51:00 · 861 阅读 · 0 评论