- 浏览: 152898 次
- 性别:
- 来自: 上海
最新评论
-
wangyang_ujn:
而太阳日统一
JSP内置对象(9个常用的内置对象) -
nanjiwubing123:
不错不错
hibernate-事务管理 -
xieluhui08:
精简好东西
JSP内置对象(9个常用的内置对象) -
juedui0769:
这些内置变量是在那个类里定义的呢?
JSP内置对象(9个常用的内置对象) -
peterwillcn:
有word版吧
概要设计模板
文章列表
近来,ADODB.Connection对象以一种比较好的方式提供对事务的支持,现在我们将要讨论的是ContextUtil对象.
com+为开发人员提供一种事务机制,这种机制比ADODB.Connection方法更加强壮和更加容易实现.
com+服务是由MTS发展而来,com+服务不但提供了对事务的支持,而且也提供了许多预置好的函数.使用com+服务可以大大节省时间,开发出强健的应用程序,但是com+在必须要处理有关互操作性问题时不被看好.
随着程序设计技术的发展,厂家把有用的功能包装在可重复使用的服务器组件中,越来越多的有用功能都从应用程序中脱离出来,进入服务器级别的程序中,甚至进入操作系统,com+服务正式这种趋势的体现.
com+服务最初是作为windows nt的一个插件,那是它们称为MicrosoftTransationServer(MTS),现在windows 2000已经把com+服务作为操 ...
对一个现代企业来说,根据报告对象,会计信息的用户可分为两大类.第一类是外部用户,包括投资者(股东),债权人,潜在的投资者,政府,工会等;第二类是内部用户,主要由企业的内部的各级管理者.会计为了满足不同用户的需要,分为"财务会计"和"管理会计"两个子系统.
现代会计的职能有三:反映,监督,参与经营决策.
根据研究内容,主要有基础会计,财务会计,成本会计,管理会计,审计等重要分支.
基础会计,又称会计原理,阐明会计的基础知识,以及基本方法和技术,它研究各个会计分支共同性的问题,包括会计模式,即会计凭证-帐户,账簿-会计报表.
会计学按其应用的部门分,还可分为: ...
- 2008-04-17 10:37
- 浏览 2039
- 评论(0)
在自定义验证器中,我们的验证器只能验证一种pattern(.+[0-9]+),我们希望可以在JSF页面上自定义匹配的pattern,然而由于我们使用<f: validator>这个通用的验证器标签,为了要能提供pattern属性,我们可以使用<f:attribute>标签来设置,例如:
....
<h:inputSecret value="#{user.password}" required="true">
<f:validator validatorId="onlyfun.caterpillar.P ...
JSF在转换和验证时都有可能会产生错误信息:
在使用标准转换器或验证器时,当发生错误时,会有一些预定义的错误信息显示,这些信息可以使用<h:messages>或<h:message>标签来显示出来,而这些预定义的错误信息也是可以修改的,您所要作的是提供一个信息资源文件,例如:
• messages.properties
javax.faces.component.UIInput.CONVERSION=Format Error.
javax.faces.component.UIInput.REQUIRED=Please input your data.
....
jav ...
- 2008-04-16 09:45
- 浏览 3609
- 评论(0)
检验必要的两种验证是语法检验(Synatic Validation)与语意检验(Semantic Validation).
语法检验是要检查使用者输入的数据是否合乎我们所要求的格式,最基本的就是检查使用者是否填入了栏目值,或是栏目值的长度、大小值等等是否符合要求。语意检验是在语法检验之后,在格式符合需求之后,我们进一步验证使用者输入的数据语意上是否正确,例如检查使用者的名称与密码是否匹配。
JSF除了<f:validateDoubleRange>、<f:validateLongRange>、<f:validateLength>三种标准验证器之外,还可以通过实现 ...
- 2008-04-16 09:21
- 浏览 3137
- 评论(0)
jsf中有动作事件、即时事件、值变事件、Phase事件四种事件.
下面将一一说明:
动作事件:
通过ActionListener来监听动作事件
先来看一段简单的jsf页面代码:
<h:commandButton value="送出" action="#{user.verify}"/>
以上代码 ...
在jsf中,除了使用标准的转换器<f:convertDateTime>来转换日期和<f:convertNumber>来转换数值之外,还可以通过实现javax.faces.convert.Converter接口来自定义转换器.
javax.faces.convert.Converter接口中有两个方法:
public Object getAsObject(FacesContext context,
UIComponent component,
String str);
public String getAsString(FacesContext context,
U ...
- 2008-04-15 14:45
- 浏览 2649
- 评论(0)
对于list方法而言,实际上Hibernate是通过一条Select SQL获取所有的记录。并将其读出,填入到POJO中返回。
而iterate 方法,则是首先通过一条Select SQL 获取所有符合查询条件的记录的id,再对这个id 集合进行循环操作,通过单独的Select SQL 取出每个id 所对应的记录,之后填入POJO中返回。
也就是说,对于list 操作,需要一条SQL 完成。而对于iterate 操作,需要n+1条SQL。
看上去iterate方法似乎有些多余,但在不同的情况下确依然有其独特的功效,如对海量数据的查询,如果用list方法将结果集一次取出,内存的开销可能无法承受。
...
- 2008-04-03 17:19
- 浏览 2970
- 评论(0)
Hibernate支持两种锁机制:
即通常所说的“悲观锁(Pessimistic Locking)”和
“乐观锁(OptimisticLocking)”。
悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使 ...
Hibernate 是JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层,
Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。
Hibernate的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文
件设定采用JTA作为事务管理实现:
<hibernate-configuration>
<session-factory>
……
<property name="hibernate.transaction.factory_class">
net.sf.hibernate. ...
为了避免一些情况下,关联关系所带来的无谓的性能开销。Hibernate引入了延迟加载的
概念。
如,示例中user对象在加载的时候,会同时读取其所关联的多个地址(address)对象,
对于需要对address进行操作的应用逻辑而言,关联数据的自动加载机制的确非常有效。
但是,如果我们只是想要获得user的性别(sex)属性,而不关心user的地址(address)
信息,那么自动加载address的特性就显得多余,并且造成了极大的性能浪费。为了获得user的性别属性,我们可能还要同时从数据库中读取数条无用的地址数据,这导致了大量无谓的系统开销。
延迟加载特性的出现,正是为了解决这个问题。
所谓 ...
Inverse,直译为“反转”。在Hibernate语义中,Inverse指定了关联关系中的
方向。
关联关系中,inverse=”false”的为主动方,由主动方负责维护关联关系。具体可
参见一对多关系中的描述。
而Cascade,译为“级联”,表明对象的级联关系,如TUser的Cascade设为all,
就表明如果发生对user对象的操作,需要对user所关联的对象也进行同样的操作。如对
user对象执行save操作,则必须对user对象相关联的address也执行save操作。
初学者常常混淆inverse和cascade,实际上,这是两个互不相关的概念。Inverse
指的是关联关系的控 ...
在非显示数据保存时,Hibernate将根据unsaved-value这个值来判断对象是否需要保存。
所谓显式保存,是指代码中明确调用session 的save、update、saveOrupdate方
法对对象进行持久化。如:
session.save(user);
而在某些情况下,如映射关系中,H ...
PO即 Persistence Object
VO即 Value Object
PO和VO是Hibernate中两个比较关键的概念。
首先,何谓VO,很简单,VO就是一个简单的值对象。
如:
TUser user = new TUser();
user.setName("Emma");这里的user就是一个VO。VO只是简单携带了对象的一些属性信息。
何谓PO? 即纳入Hibernate管理框架中的VO。
看下面两个例子:
例一:
TUser user = new TUser();
TUser anotherUser = new TUser();
user.setNam ...