- 浏览: 248273 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
bit1129:
huanjia27 写道楼主, //数字小,优先级高 ...
PriorityBlockingQueue优先级规则 -
huanjia27:
楼主, //数字小,优先级高 public in ...
PriorityBlockingQueue优先级规则 -
bit1129:
优先级队列有点坑。。。对于返回的数组或者Iterator,对它 ...
PriorityBlockingQueue优先级规则 -
sun_2008:
再加一个参数cachePrepStmts=true才行,好像预 ...
Mysql是支持预编译的,只是默认没开启 -
hooray520:
nice~~
ThreadPoolExecutor线程池实现逻辑
通过这个把月的接触,我觉得自己已经非常喜欢ADF这个框架了。 简单地说,ADF分UI层和BC层, 并有Jdev提供了完美的支持,可以极大提高软件的开发效率,今年的目标就是好好研究下ADF。
说到UI,我之前觉得Ext的UI已经非常不错了,不仅美观,同时还提供了非常完善的用户体验,简单地几行代码就能做出令人赞叹的界面。 ADF的UI,美观以及体验绝对不会输给Ext,同时有Jdev的支持, 采用Drag&Drop的方式,并提供130多个Component, 开发效率更是不必说了。
后面的BC层曾也是非常强大,AM,EO,VO通过各种配置就能实现很多业务逻辑,能减少很多开发人员手工代码量,避免了很多出错的可能性。 UI,BC 完美结合,有时拉个VO到UI上,一个界面就基本完成了,真是爽到不好怎么说了。
============================================================
下面列出一些学习笔记,以供随时复习:
配置connection里面data type map,在加载了数据,以后是不能够修改的, 老版本的ADF用的是Oracle Domain, 新版本全部用的是java extended for oracle。 除非是开发兼容版本, 不然我们都应该是后者。
选择EO,或者任意的Model,点击Diagram,以及里面的Link,那么就能看到各种关系
AM实现了一组通用的SOA接口,用来管理用户的数据,比如,findViewObject 还有一系列的调用link, association的方法。 各个Remote AM之间,是否也是可以互相访问,那样的话,远程的方法也可以通过AM直接调用到了。
什么是Active Data Model: Data 在前台,后台的修改都会自动同步, 而这种同步采用的是SOA的方式
full source code有助于理解框架并且使用框架, 同时也利于Debug.
ADF是Plain Java以及XML,有利于Component在Container里面调用,同时也可以在各种应用程序中调用,比如command line, jsp, service, desktop等
ADF的主要源代码在oracle.jbo和oracle.jbo.server这两个包里面, 前者是interface,后者是实现者
包的命名规则: 公司名.项目名.子项目名.模块名.(queries,service,entities ). keep in mind, ADF的Component是为重用而设计的,所以包的设计也考虑这一点
AM可以是只有单个的XML,如果你不需要而外的方法,那么XML文件加上配置上的VO,你也可以很好的使用到AM,以及后台的VO, 使用的Class是oracle.jbo.server.ApplicationModuleImpl, 而如果你声明创建了class, 那么使用的Class就是你创建的那个class.
如果view层不是用ADF,那么使用后台数据的时候要用相应的类型, import oracle.jbo.domain.Number; 而不是java.utils.Number. 后者会有编译错误。
访问Component数据,可以采用通用的方法,或者是固定类型的方法, 如 getAttribute(salary), 或者 getSalary(), 这些都是component已经生成好的方法
BC层向Client (UI或其他展示) 提供的访问Component包括, AM本省, AM所关联的VO, 以及VO的Row. EO 则是不会直接给到Client
命名EO的时候,最好使用其表名的单数形式, EO相关的association, events, formatters, validators等都作为entities的子package,分别保存起来
EO 的mandatory flag是用来定义是否可以是null
用Business Components from Tables wizard来创建EO,VO, AM, 可以非常快速的创建好,同时如果表之间有foreign key 的话,那么association也可以随之创建
如果目标Table没有primary key, 那么EO将会加上一列RowID, 对应Table中的rowId作为主键
如果把EO建立在view上面,那么RowId也是被作为了primarykey(by table wizard方法)。 另外如果是create EO的wizard,那么就是需要手工去指定一个primary key
设计好EO之后,可以通过在EO的package上右键选择Create database Object来生成Table, 注意相关的字段类型,目前测得, Long无法生成, 需要改Number(18)
当新的字段添加到Table以后,需要synchronize的方法来将更新同步到EO里面。 是否需要重新连接才能显示出表的更新呢? 目前是重启了以后才能发现那个新的Column,然后更新到EO里面。
而如果是Table里面删除了字段以后,如果想跟新到EO里面,就比较麻烦了,需要在EO里面删除Attributes
如果是Table的Column类型发生了改变(alter table employee modify (salary varchar2(18))),sychronized可以把attribute更新好,但是引用该字段的程序需要手动去查询。
创建effective data entry, 这种设计在HRMS里面非常常见, 对于某个记录,有效期是由startDate和endDate确定的, 另外再加一个sequence,用来跟踪这个数据当天变化多次的情况, 同时还有一个sequenceFlag来标示最新的一个change. 如果没有sequence,那么同一天的变化是不允许的
一般用于有实效性的记录,比如: what are the benifit for the employee on Auguest 21st, 2005?
目前jdev里面关于生成effective data entry 的方法没有测试成功. 后续CRUD的时候再用代码测试
组合关联:relationship 分aggregation or composition, 引用, 或者是包含。 引用的话,删除其中的一个Entry,不应该导致另外一个Entry的删除。 而处于包含关系的话, 删除其中一个,会需要删除另外一个Entry,来保持整体的完整性。 一般创建的是refference的, 如果选择了 cascade delete,那么就是后者了。
Group Directory 能够将diagram和src分成2个包。 对diagram名字的修改不会导致Entity的名字修改
关于formater和mask, 都是在C:\Documents and Settings\username\Application Data\JDeveloper\system##\o.BC4J\formatinfo.xml里面定义, 对于每个domain,如java.util.Date, 可以定义一些fomatter
resource bundle是自动生成的properties,在project properties里面配置。 另外关于Resource Bundle的国际化部分不是太明白。。
创建Business logic Group来让EO按指定的方式工作, 这些个Group是否可以重用,如果不能重用,那么他和Eo的logic validtion有什么区别? 区别在于它独立存储, 能够动态加载到让某些row具备这些特性,有些不具备。
当一个EO的业务逻辑特别复杂,并且在不同的子系统里面业务子集不同的时候,这个Group可以分组,让不同的开发群组,定义自己的业务集合。
如果要创建logic unit, 必须先将attribute设置为overwrite, 然后才能添加valicator, uihint. 如何使用这些business logic,讲的不是太清晰,需要测试
EO的Alternate Keys, 意思是让你有机会定义另外一个可以作为主键的attribute
Update Batching是EO general里面对性能影响比较显著的一个参数, 设置一次性提交修改的DML个数。 但前提是没有任何attribute设置了 refresh in update 等三个参数
Updatability of an Attribute: 一个attr是否可以被修改,While new是在第一次insert并且在commit之前,是可以修改的
attr的Mandatory设置,运行于Entry Level, 用来检验这个attr是否非null.
EO支持联合主键, getKey也是可以get到联合主键。 特别要注意的是联合主键的顺序, 通过key去get Record,如果设置的顺序不正确,那么也是拿不到任何值的。
当column上面有trigger的时候,我们可以打开refresh on insert或者refresh on update来获得trigger之后的值,
如果把attr的type设置为了DB Sequence,那么他将会被自动赋值,Sequence里面获得
RowInconsistentException. 当前需要更新的Row如果发现了已经被其他user修改了,那么就报这个Exception, 用来确保consistence
TrackChange History的选项,可以把一些Table的定义项,用来作为track的记录保存, 比如version number, create on , modify by 等
有组合关系的Entity创建的时候,子组建的创建时会进行一项检测,看FK的父组件是否存在,不然就抛出InvalidOwnerException. 这个检测不仅在DB里面,同时也会检查Pending的Entity.
implement for db cascade delete, 让delete动作在commit的时候生效。
implement cascade, 让删除parent的时候,自动也删除children
Cascade Update: primary key更新的时候,其fk也被相应地更新。
Locking of Composite Parent Entities: 修改children的时候, parent entity是否需要被lock住
Updating of Composing Parent History Attributes: parent entity 的history attr是否需要被update
Entity Object Inheritance Hierarchies: 这也是一种比较规范的表设计方式, 比如表里面有type这个字段,同时有一些字段只和某种type相关,这时将这些字段拆分成单独的子表是比较好的设计方法。
Alternate Key: 可以让程序使用findByKey的方式来查找到Entity, 这样就避免了使用sequence key的尴尬。 在实现上,采用alter key,在内存里面相当于多了个用alter key作为key的HashMap,用来访问Entity
default value里面的expression引用到的column,必须是dependency里面所列举出来的。 另外, 如果是在java的get方法里面设置好了计算并且返回了值,也需要在dependency里面声明,确保能够同步刷新
OracleMediator,是和Component Event相关模块, Component由于某些动作比如create,产生event,然后在另外一些Component里面订阅解释这些event,所以当一个event产生后,process就会开始运作。
关于Event, Transactional Event和Synchronized event都是不被框架支持的, 前者是Event作为事务的一部分,可以被Rollback,后者是同步Event,必须等到Event确认才能结束。
定义好Event后,给EVent选择Event Point, Create delete, change, 同时还要选择condition, 比如某个值等于多少的时候,才raise. 这相当于更加细粒度地进行了raise的控制, 如果没有raise condition,那么就应该是在Event Point的时候就raise.
Children Entity在Raise Event的时候,不管children raise了多少event,在一个transaction里面,都只能有一个parent的event被raise出去。
Event里面的字段是能够支持大字段的ClobDomain attributes, 但是对performance会有一定的影响。 关于Event的订阅,目前还没有测试,
EntityImpl是所有Entity的java class都会继承的类,如果没有Java class的话,ADF就是使用EntityImpl加上XML来实现Entity所有功能的
创建Entity的时候,是否需要自动创建java, View 或者是AM, 可以配置的。 tool -- preference -- adf component
Entity的attribute value不是存在privagte + getset的属性里面,而是以一组顺序存在Array里面, 其目的是为了和XML 和attribute的顺序match, 保存一组attr顺序的信息, 从而在更新XML的时候,能够找到正确的位置,添加上合适的Code,或者在合适的位置删除Code
不要修改set/getAttrInvokeAccessor, 如果要更改属性的顺序,用UI editor来修改,这样能同步XML和Java Code. 手工修改index是不可以的。
创建primarykey是通过EOImpl的static createPrimarykey方法, findByPrimaryKey是EoImpl.getDefinitionObject().findBPrimaryKey(xxxx);
创建新Entity采用def的createInstance2方法
生成sequenceNumber并加入到新创建的Entity里面,可以通过override create方法,然后生成number, setAttr进入Entry. SequenceImpl s=new SequenceImpl("name",getDBTransaction()); s.getSequenceNumber()
而这个sequencename是数据库中存在的sequencename,通过custom property加入到Entity中
采用delete标识符来替代真正的physic delete, 需要做2件事, 第一,setDeleteFlag('Y'), 然后override doDML,在里面做些修改 if(operation==DML_DELETE) operation=DML_UPDATE
domain type可以添加和修改,比如创建一个EmailAddress的Type,使用这样的Type就可以免去很多个普通String上面关于EmailAddress的校验
HistoryType也是可以添加自己的类型,但同时要overide getHistoryContextForAttribute方法
Entity Object也可以建立在SQL/PLSQL/View上面,这样的话,相关的Insert,update, delete在执行doDML时,要采用相关的procedure来完成功能
创建有继承关系的EO,需要在Extend一栏目填上super class的类型,在column里面去掉不需要的column.
说到UI,我之前觉得Ext的UI已经非常不错了,不仅美观,同时还提供了非常完善的用户体验,简单地几行代码就能做出令人赞叹的界面。 ADF的UI,美观以及体验绝对不会输给Ext,同时有Jdev的支持, 采用Drag&Drop的方式,并提供130多个Component, 开发效率更是不必说了。
后面的BC层曾也是非常强大,AM,EO,VO通过各种配置就能实现很多业务逻辑,能减少很多开发人员手工代码量,避免了很多出错的可能性。 UI,BC 完美结合,有时拉个VO到UI上,一个界面就基本完成了,真是爽到不好怎么说了。
============================================================
下面列出一些学习笔记,以供随时复习:
配置connection里面data type map,在加载了数据,以后是不能够修改的, 老版本的ADF用的是Oracle Domain, 新版本全部用的是java extended for oracle。 除非是开发兼容版本, 不然我们都应该是后者。
选择EO,或者任意的Model,点击Diagram,以及里面的Link,那么就能看到各种关系
AM实现了一组通用的SOA接口,用来管理用户的数据,比如,findViewObject 还有一系列的调用link, association的方法。 各个Remote AM之间,是否也是可以互相访问,那样的话,远程的方法也可以通过AM直接调用到了。
什么是Active Data Model: Data 在前台,后台的修改都会自动同步, 而这种同步采用的是SOA的方式
full source code有助于理解框架并且使用框架, 同时也利于Debug.
ADF是Plain Java以及XML,有利于Component在Container里面调用,同时也可以在各种应用程序中调用,比如command line, jsp, service, desktop等
ADF的主要源代码在oracle.jbo和oracle.jbo.server这两个包里面, 前者是interface,后者是实现者
包的命名规则: 公司名.项目名.子项目名.模块名.(queries,service,entities ). keep in mind, ADF的Component是为重用而设计的,所以包的设计也考虑这一点
AM可以是只有单个的XML,如果你不需要而外的方法,那么XML文件加上配置上的VO,你也可以很好的使用到AM,以及后台的VO, 使用的Class是oracle.jbo.server.ApplicationModuleImpl, 而如果你声明创建了class, 那么使用的Class就是你创建的那个class.
如果view层不是用ADF,那么使用后台数据的时候要用相应的类型, import oracle.jbo.domain.Number; 而不是java.utils.Number. 后者会有编译错误。
访问Component数据,可以采用通用的方法,或者是固定类型的方法, 如 getAttribute(salary), 或者 getSalary(), 这些都是component已经生成好的方法
BC层向Client (UI或其他展示) 提供的访问Component包括, AM本省, AM所关联的VO, 以及VO的Row. EO 则是不会直接给到Client
命名EO的时候,最好使用其表名的单数形式, EO相关的association, events, formatters, validators等都作为entities的子package,分别保存起来
EO 的mandatory flag是用来定义是否可以是null
用Business Components from Tables wizard来创建EO,VO, AM, 可以非常快速的创建好,同时如果表之间有foreign key 的话,那么association也可以随之创建
如果目标Table没有primary key, 那么EO将会加上一列RowID, 对应Table中的rowId作为主键
如果把EO建立在view上面,那么RowId也是被作为了primarykey(by table wizard方法)。 另外如果是create EO的wizard,那么就是需要手工去指定一个primary key
设计好EO之后,可以通过在EO的package上右键选择Create database Object来生成Table, 注意相关的字段类型,目前测得, Long无法生成, 需要改Number(18)
当新的字段添加到Table以后,需要synchronize的方法来将更新同步到EO里面。 是否需要重新连接才能显示出表的更新呢? 目前是重启了以后才能发现那个新的Column,然后更新到EO里面。
而如果是Table里面删除了字段以后,如果想跟新到EO里面,就比较麻烦了,需要在EO里面删除Attributes
如果是Table的Column类型发生了改变(alter table employee modify (salary varchar2(18))),sychronized可以把attribute更新好,但是引用该字段的程序需要手动去查询。
创建effective data entry, 这种设计在HRMS里面非常常见, 对于某个记录,有效期是由startDate和endDate确定的, 另外再加一个sequence,用来跟踪这个数据当天变化多次的情况, 同时还有一个sequenceFlag来标示最新的一个change. 如果没有sequence,那么同一天的变化是不允许的
一般用于有实效性的记录,比如: what are the benifit for the employee on Auguest 21st, 2005?
目前jdev里面关于生成effective data entry 的方法没有测试成功. 后续CRUD的时候再用代码测试
组合关联:relationship 分aggregation or composition, 引用, 或者是包含。 引用的话,删除其中的一个Entry,不应该导致另外一个Entry的删除。 而处于包含关系的话, 删除其中一个,会需要删除另外一个Entry,来保持整体的完整性。 一般创建的是refference的, 如果选择了 cascade delete,那么就是后者了。
Group Directory 能够将diagram和src分成2个包。 对diagram名字的修改不会导致Entity的名字修改
关于formater和mask, 都是在C:\Documents and Settings\username\Application Data\JDeveloper\system##\o.BC4J\formatinfo.xml里面定义, 对于每个domain,如java.util.Date, 可以定义一些fomatter
resource bundle是自动生成的properties,在project properties里面配置。 另外关于Resource Bundle的国际化部分不是太明白。。
创建Business logic Group来让EO按指定的方式工作, 这些个Group是否可以重用,如果不能重用,那么他和Eo的logic validtion有什么区别? 区别在于它独立存储, 能够动态加载到让某些row具备这些特性,有些不具备。
当一个EO的业务逻辑特别复杂,并且在不同的子系统里面业务子集不同的时候,这个Group可以分组,让不同的开发群组,定义自己的业务集合。
如果要创建logic unit, 必须先将attribute设置为overwrite, 然后才能添加valicator, uihint. 如何使用这些business logic,讲的不是太清晰,需要测试
EO的Alternate Keys, 意思是让你有机会定义另外一个可以作为主键的attribute
Update Batching是EO general里面对性能影响比较显著的一个参数, 设置一次性提交修改的DML个数。 但前提是没有任何attribute设置了 refresh in update 等三个参数
Updatability of an Attribute: 一个attr是否可以被修改,While new是在第一次insert并且在commit之前,是可以修改的
attr的Mandatory设置,运行于Entry Level, 用来检验这个attr是否非null.
EO支持联合主键, getKey也是可以get到联合主键。 特别要注意的是联合主键的顺序, 通过key去get Record,如果设置的顺序不正确,那么也是拿不到任何值的。
当column上面有trigger的时候,我们可以打开refresh on insert或者refresh on update来获得trigger之后的值,
如果把attr的type设置为了DB Sequence,那么他将会被自动赋值,Sequence里面获得
RowInconsistentException. 当前需要更新的Row如果发现了已经被其他user修改了,那么就报这个Exception, 用来确保consistence
TrackChange History的选项,可以把一些Table的定义项,用来作为track的记录保存, 比如version number, create on , modify by 等
有组合关系的Entity创建的时候,子组建的创建时会进行一项检测,看FK的父组件是否存在,不然就抛出InvalidOwnerException. 这个检测不仅在DB里面,同时也会检查Pending的Entity.
implement for db cascade delete, 让delete动作在commit的时候生效。
implement cascade, 让删除parent的时候,自动也删除children
Cascade Update: primary key更新的时候,其fk也被相应地更新。
Locking of Composite Parent Entities: 修改children的时候, parent entity是否需要被lock住
Updating of Composing Parent History Attributes: parent entity 的history attr是否需要被update
Entity Object Inheritance Hierarchies: 这也是一种比较规范的表设计方式, 比如表里面有type这个字段,同时有一些字段只和某种type相关,这时将这些字段拆分成单独的子表是比较好的设计方法。
Alternate Key: 可以让程序使用findByKey的方式来查找到Entity, 这样就避免了使用sequence key的尴尬。 在实现上,采用alter key,在内存里面相当于多了个用alter key作为key的HashMap,用来访问Entity
default value里面的expression引用到的column,必须是dependency里面所列举出来的。 另外, 如果是在java的get方法里面设置好了计算并且返回了值,也需要在dependency里面声明,确保能够同步刷新
OracleMediator,是和Component Event相关模块, Component由于某些动作比如create,产生event,然后在另外一些Component里面订阅解释这些event,所以当一个event产生后,process就会开始运作。
关于Event, Transactional Event和Synchronized event都是不被框架支持的, 前者是Event作为事务的一部分,可以被Rollback,后者是同步Event,必须等到Event确认才能结束。
定义好Event后,给EVent选择Event Point, Create delete, change, 同时还要选择condition, 比如某个值等于多少的时候,才raise. 这相当于更加细粒度地进行了raise的控制, 如果没有raise condition,那么就应该是在Event Point的时候就raise.
Children Entity在Raise Event的时候,不管children raise了多少event,在一个transaction里面,都只能有一个parent的event被raise出去。
Event里面的字段是能够支持大字段的ClobDomain attributes, 但是对performance会有一定的影响。 关于Event的订阅,目前还没有测试,
EntityImpl是所有Entity的java class都会继承的类,如果没有Java class的话,ADF就是使用EntityImpl加上XML来实现Entity所有功能的
创建Entity的时候,是否需要自动创建java, View 或者是AM, 可以配置的。 tool -- preference -- adf component
Entity的attribute value不是存在privagte + getset的属性里面,而是以一组顺序存在Array里面, 其目的是为了和XML 和attribute的顺序match, 保存一组attr顺序的信息, 从而在更新XML的时候,能够找到正确的位置,添加上合适的Code,或者在合适的位置删除Code
不要修改set/getAttrInvokeAccessor, 如果要更改属性的顺序,用UI editor来修改,这样能同步XML和Java Code. 手工修改index是不可以的。
创建primarykey是通过EOImpl的static createPrimarykey方法, findByPrimaryKey是EoImpl.getDefinitionObject().findBPrimaryKey(xxxx);
创建新Entity采用def的createInstance2方法
生成sequenceNumber并加入到新创建的Entity里面,可以通过override create方法,然后生成number, setAttr进入Entry. SequenceImpl s=new SequenceImpl("name",getDBTransaction()); s.getSequenceNumber()
而这个sequencename是数据库中存在的sequencename,通过custom property加入到Entity中
采用delete标识符来替代真正的physic delete, 需要做2件事, 第一,setDeleteFlag('Y'), 然后override doDML,在里面做些修改 if(operation==DML_DELETE) operation=DML_UPDATE
domain type可以添加和修改,比如创建一个EmailAddress的Type,使用这样的Type就可以免去很多个普通String上面关于EmailAddress的校验
HistoryType也是可以添加自己的类型,但同时要overide getHistoryContextForAttribute方法
Entity Object也可以建立在SQL/PLSQL/View上面,这样的话,相关的Insert,update, delete在执行doDML时,要采用相关的procedure来完成功能
创建有继承关系的EO,需要在Extend一栏目填上super class的类型,在column里面去掉不需要的column.
发表评论
-
提高Fusion开发效率的几个技巧
2012-05-29 12:29 11311. 整理自己的所做过的B ... -
finally关键字与return关键字的关系
2011-03-15 17:26 1331finally关键字与return关键字的关系 1. fi ... -
采用泛型,自己实现一个Stack
2010-12-12 12:26 1033实现思路: 1.建立一个结点,每个结点都有一个保存自身val ... -
关于类的equals和hashcode方法
2010-12-06 22:21 1123当我们想要改写equals方法的时候,总是应该打起12分的精神 ... -
获取字符组所有排列字符串的算法
2010-12-04 09:43 1636刚看了论坛上有个很有意思的递归算法题,忍不住自己也动手来写写看 ... -
并发编程 出纳-顾客模型 仿真练习
2010-11-29 22:09 1156这个仿真模型包括如下几个对象: 顾客: 随机的时间间隔出现顾 ... -
Semaphore--给队列加上许可证
2010-11-28 16:12 1156在如下的场景,我们可能需要加入类似许可证的实现: 有一个资源 ... -
shutdown和shutdownNow--多线程任务的关闭
2010-11-28 14:22 2615采用5.0的线程池关闭线程,不管怎样,最后都是调用Interr ... -
PriorityBlockingQueue优先级规则
2010-11-28 10:17 14731PriorityBlockingQueue里面存储的对象必须是 ... -
ThreadPoolExecutor线程池实现逻辑
2010-11-27 23:08 3171之前不知道是看了哪篇文章,形成了一个概念,说ThreadPoo ... -
各种同步方法性能比较(synchronized,ReentrantLock,Atomic)
2010-11-27 10:27 131615.0的多线程任务包对于同步的性能方面有了很大的改进,在原有s ... -
阻塞任务队列DelayQueue
2010-11-24 22:14 2390DelayQueue也和其他阻塞队列一样,采用put和take ... -
多线程任务协作:CountDownLatch的使用
2010-11-24 18:50 1211多线程任务协作中,如果有一个任务,需要在其他线程的任务完成以后 ... -
JDK5提供的阻塞队列
2010-11-24 18:19 1359JDK5的concurrent包里面尽是宝贝,还好我有的是时间 ... -
线程外捕获某个线程内异常的方法
2010-11-20 16:24 1849由于线程本质的特性,我们并不能直接捕获从线程中逃逸的异常,一旦 ... -
Java并发整理笔记
2010-11-20 15:21 1576前面对并发编程,我一直是心怀崇敬,如履薄冰。尽管如此,稍微复杂 ... -
原来5.0就已经优化好了字符串的连接符号
2010-11-11 12:24 11495.0里面, 字符连接用+号,速度已经可以和StringBuf ... -
Java垃圾回收
2010-11-11 12:20 1107之前总是觉得掌握了Java的垃圾回收机制,但稍微讨论下,就发现 ...
相关推荐
ADF开发指南---Oracle版,用于开发ADF框架的指导,是目前最权威的开发指南
ADF定义:Application Development Framework是oracle开发的一个基于Jdeveloper的界面化操作MVC开发框架,依赖XML进行数据映射和配置,实现客户端空间“拖拽”数据绑定,大大简化基于MVC的WEB开发
### Oracle ADF 开发指南知识点总结 #### 一、Oracle ADF 概述 - **Oracle ADF**(Application Development Framework)是一个全面的应用程序开发框架,它基于J2EE标准和开源技术,专为简化企业级应用开发而设计。...
ADF 冰点6.5-7.1 密码清除 ADF 冰点6.5-7.1 密码清除ADF 冰点6.5-7.1 密码清除ADF 冰点6.5-7.1 密码清除
oracle-ADF开发笔记,值得学习的资料
### Oracle ADF 开发指南知识点概述 #### 一、Oracle ADF 概念与特性 - **Oracle Application Development Framework (ADF)**:Oracle ADF 是一套用于简化 Java 应用程序开发的完整框架,旨在帮助开发者快速构建高...
### 基于Oracle ADF 的应用程序开发过程详解 #### 一、Oracle ADF 概述 Oracle ADF (Application Development Framework) 是由 Oracle 公司推出的一款旨在简化 J2EE 应用程序开发复杂度的框架。ADF 的核心价值在于...
### Oracle ADF开发实战指南知识点解析 #### 一、Oracle ADF简介 - **Oracle Application Development Framework (ADF)** 是一种用于快速开发企业级Java应用程序的框架。它提供了一种简化的方式来构建复杂的用户...
**ADF4360-9 PLL+VCO频综芯片详解** ADF4360-9是ADI(Analog Devices, Inc.)公司推出的一款高性能、高集成度的..."ADF4360-9使用笔记"文档则提供了具体的调试步骤和实践经验,是学习和调试ADF4360-9的重要参考资料。
"adf-faces-10_1_3_0_4" 这个版本的 ADF Faces 是 Oracle 提供的一组 JSF 用户界面组件,它包含了大量的预构建 UI 控件,如表格、图表、树形结构、日期选择器等,这些组件都是经过优化的,可以方便地进行自定义和...
本资料集“Oracle英文版学习资料 JDeveloper和ADF 11g新文档集 oracle-11g-english”旨在为学习Oracle技术,特别是JDeveloper和ADF 11g版本的用户提供详尽的指导。 JDeveloper是一款集成开发环境(IDE),专为...
描述强调了资料的功能全面性,意味着这份文档不仅涵盖了Oracle ADF的基础知识,还包括了高级特性和实战经验,适合不同水平的开发者学习和参考。功能全面可能涉及了组件库、数据绑定、页面流控制、事件处理、国际化...
oracle-ADF开发笔记,值得学习的资料(第二部分)
这个过程涉及到Oracle ADF的核心概念,如View Object、View Criteria、List of Values和UI Hints,这些都是构建高效、动态的Oracle ADF应用的关键组件。理解并熟练掌握这些技术,对于开发复杂的业务应用至关重要。
### Oracle ADF AM常用配置参数参考 #### 一、AM常用参数 在Oracle ADF (Application Development Framework) 应用程序中,AM (Application Module) 是一个关键组件,用于处理业务逻辑并提供数据访问功能。为了...
### Oracle ADF 架构与关键功能概述 Oracle Application Development Framework(简称 Oracle ADF)是Oracle提供的一套全面的应用开发框架,旨在简化企业级Java应用的构建过程。它结合了Oracle JDeveloper工具集来...
### Oracle ADF Faces Rich Client 11g 开发文档知识点概览 #### 一、概述 Oracle ADF (Application Development Framework) 是一个用于快速构建企业级应用的强大框架,它简化了Java EE应用程序的开发过程。其中ADF...
### Oracle ADF 11g Release 1 (11.1.1.7.0):Fusion Developer's Guide #### 一、概述 Oracle Application Development Framework (ADF) 是一个全面且集成的 Java 应用程序开发框架,用于构建企业级的业务应用...
标题中的“ADF4360-7.rar”指的是ADI公司的一款高性能、可编程频率合成器——ADF4360-7。这款芯片广泛应用于无线通信、测试设备、广播和其他需要精确频率生成的系统中。ADF4360-7包含了锁相环(PLL)技术,能够实现...