`
文章列表

com+-事务

    博客分类:
  • .net
    近来,ADODB.Connection对象以一种比较好的方式提供对事务的支持,现在我们将要讨论的是ContextUtil对象.     com+为开发人员提供一种事务机制,这种机制比ADODB.Connection方法更加强壮和更加容易实现.    
    com+服务是由MTS发展而来,com+服务不但提供了对事务的支持,而且也提供了许多预置好的函数.使用com+服务可以大大节省时间,开发出强健的应用程序,但是com+在必须要处理有关互操作性问题时不被看好.     随着程序设计技术的发展,厂家把有用的功能包装在可重复使用的服务器组件中,越来越多的有用功能都从应用程序中脱离出来,进入服务器级别的程序中,甚至进入操作系统,com+服务正式这种趋势的体现.     com+服务最初是作为windows nt的一个插件,那是它们称为MicrosoftTransationServer(MTS),现在windows 2000已经把com+服务作为操 ...
对一个现代企业来说,根据报告对象,会计信息的用户可分为两大类.第一类是外部用户,包括投资者(股东),债权人,潜在的投资者,政府,工会等;第二类是内部用户,主要由企业的内部的各级管理者.会计为了满足不同用户的需要,分为"财务会计"和"管理会计"两个子系统. 现代会计的职能有三:反映,监督,参与经营决策. 根据研究内容,主要有基础会计,财务会计,成本会计,管理会计,审计等重要分支. 基础会计,又称会计原理,阐明会计的基础知识,以及基本方法和技术,它研究各个会计分支共同性的问题,包括会计模式,即会计凭证-帐户,账簿-会计报表. 会计学按其应用的部门分,还可分为: ...
在自定义验证器中,我们的验证器只能验证一种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 ...
检验必要的两种验证是语法检验(Synatic Validation)与语意检验(Semantic Validation). 语法检验是要检查使用者输入的数据是否合乎我们所要求的格式,最基本的就是检查使用者是否填入了栏目值,或是栏目值的长度、大小值等等是否符合要求。语意检验是在语法检验之后,在格式符合需求之后,我们进一步验证使用者输入的数据语意上是否正确,例如检查使用者的名称与密码是否匹配。 JSF除了<f:validateDoubleRange>、<f:validateLongRange>、<f:validateLength>三种标准验证器之外,还可以通过实现 ...
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 ...
对于list方法而言,实际上Hibernate是通过一条Select SQL获取所有的记录。并将其读出,填入到POJO中返回。 而iterate 方法,则是首先通过一条Select SQL 获取所有符合查询条件的记录的id,再对这个id 集合进行循环操作,通过单独的Select SQL 取出每个id 所对应的记录,之后填入POJO中返回。 也就是说,对于list 操作,需要一条SQL 完成。而对于iterate 操作,需要n+1条SQL。 看上去iterate方法似乎有些多余,但在不同的情况下确依然有其独特的功效,如对海量数据的查询,如果用list方法将结果集一次取出,内存的开销可能无法承受。 ...
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 ...
Global site tag (gtag.js) - Google Analytics