`
文章列表
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class, ...
本文对EJB的体系结构作一个全面介绍:     * EJB在J2EE体系结构中的位置     * EJB的环境构成     * EJB的资源配置     * EJB的种类     * EJB组件的构造     * EJB的调用过程     * EJB组件的生命周期 EJB是Enterprise JavaBeans的简称。本文对EJB技术的体系结构作一个全面深入地介绍。 EJB在J2EE体系结构中的位置 视图层或表现层:提供用户界面;接收用户输入;数据输出。WEB应用的情况,JSP以及SERVLET属于视图层组件。 业务逻辑层:实际的业务逻辑处理。根据视图层传送过来的数据,进 ...
Composite View(复合视图) Composite View模式又称复合视图模式,它建议将复杂的视图分解成多个原子子视图,这些子视图可以被动态地组合进整个页面或排版。 Composite View模式介绍 我们从问题,解决方法,策略,优点等几个方面介绍Composite View模式。最后给出Composite View的相关联结。 问题 WEB应用中可能存在以下页面: - 页面内容的一部分需要修改频繁 - 多个页面中存在相同或相似的内容 - 多个页面具有相同或相似的排版 等。 对于以上页面,如果把页面内容代码分散到各个页面视图中,将存在以下问题: - 页面内容的 ...
概要 本文对J2EE企业架构应用的基本模式(Core J2EE Patterns)做一个概要介绍。 下图基本上列出了J2EE企业架构应用的基本模式,这些基本模式大致分为以下3类:表示层;逻辑处理层;集成层。 Presentation Tier Intercepting Filter: Con ...
在项目的最后阶段,就是要防止系统的内存泄漏了,顺便找了些资料,看了些java内存泄漏的实例及解决,总结一下: Java是如何管理内存 为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是Java程序运行速度较慢的原因之 ...
这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题,调研了一些java内存管理的资料,现整理如下: 一、JVM中的对象生命周期 对象的生命周期一般分为7个阶段:创建阶段,应用阶段,不可视阶段,不可到达阶段,可收集阶段,终结阶段,释放阶段。 创建阶段,首先大家看一下,如下两段代码: test1: for( int i=0; i<10000; i++) Object obj=new Object(); test2: Object obj=null; for( int i=0; i<10000; i++) obj=new Object(); 这两段代码都是 ...
      Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。对核心概念和思想的掌握可以帮助我们举一反三、触类旁通,有助于提升我们对整个Java平台的理解力。这里所介绍的是Java技术平台的几个核心概念,其中所蕴含的思想有助于我们更深刻的理解Java技术。   1.Java虚拟机   Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。   不同的Ja ...
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:   ThisIsAClassName   thisIsMethodOrFieldName   若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。   Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 ...
1.final类:为防止他人从你的类上派生新类,此类是不可扩展的。 2.动态调用比静态调用花费的时间要长。 3.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。         例: public abstract string getDescripition 4.Java中 ...
4、报表查询 报表查询用于对数据分组和统计,完整的HQL语法: [select...] from ... [where...] [group by... [having...]] [order by...] 4.1 投影查询 指查询结果仅包含部分实体或实体的部分属性。投影是通过select关键字实现。 from  Customer c join c.orders o where o.orderNumber like 'T%' //会检索出Customer 及关联的Order对象 select c from Customer c join c.orders o where o.or ...
提供的检索方式: (1)导航对象图检索方式 (2)OID检索方式 (3)HQL检索方式 (4)QBC检索方式[query by Criteria(标准)] (5)本地SQL检索方式 1、简介 1.1 HQL检索方式 HQL(Hibernate query Language)是面向对象的查询语言,在Hibernate提供的检索方式中,HQL是使用最广泛的检索方式。功能: a.在查询语句中设定各种查询条件 b.支持投影查询,即仅检索出对象的部分属性 c. 支持分页查询 d.支持连接查询 e.支持分组查询,允许使用having 和group by 关键字 f.提供内聚聚集 ...
Customer和Order为例 1、hibernate检索策略简介 Hibernate执行检索方法时(load、get、find),需要获得以下信息: a. 类级别检索策略:session.load,session.get,session.find方法,直接指定检索的是Customer对象,对Customer对象到底采用立即检索,还是延迟检索? b. 关联级别检索策略:对与Customer关联的Order对象,即Customer的orders集合,到底采用立即检索还是延迟检索,还是迫切左外联接检索? Hibernate还允许在应用程序中以编程方式显式设定检索策略,同时会 ...
Hibernate映射类型分为两种:内置映射类型和客户化映射类型,内置映射类型负责把常见的java类型映射到相应的sql类型;另外,用户可以实现UserType或CompositeUserType接口,来定制客户化映射类型,这样可以把用户定义 的java类型映射到数据库表的相应字段。 1、内置映射类型 1.1 java基本类型的hibernate映射类型 1.2 java时间和日期类型的hibernate映射类型 1.3 Java大对象类型的hibernate映射类型 注意:不允许使用这些数据类型来定义持久化类的OID。 CLOB:字符串大对象(Character Large Obj ...
1、理解Session的缓存 如果希望一个java对象一直处于生命周期中,就必须保证至少有一个变量引用它,或者在一个java集合中存放这个对象的引用。Session接口的实现类SessionImpl中定义了一系列的Java集合,这些java集合构成了Session的缓存。当Session的save方法持久化一个 A对象时,A对象被加入到Session的缓存中,当load方法试图从数据库中加载一个A对象时,Session先判断缓存是否已经存在这个对象,如果存在就不会去检索。调用Session.close才会清空缓存。       session的缓存的作用:       a.减少访问数据库的 ...
1、概念 1.1 聚集关系   在域模型中,有些类由几个部分类组成,部分类的对象的生命周期依赖于整体类的对象的生命周期,当整体消失时,部分也就随之消失,这种整体与部分的关系被称为聚集关系。 1.2 组成关系   如果部分只能属于特定的整体,这种聚集关系也叫做组成关系。 如:任何手足事整体与部分的关系,每双手只能属于特定的人。 2、粒度 建立关系数据模型的一个重要原则:在不会导致数据冗余的前提下,尽可能减少数据库表的数目以及表之间的外键参照关系,这样可以避免建立多表连接。 3. 映射组成关系 建立域模型和关系数据模型有着不同的出发点。域模型是由程序代码组成的,通过细化持久化类的 ...
Global site tag (gtag.js) - Google Analytics