`
文章列表

test projects

个人测试代码
  jetty快速入门与嵌入使用 jetty 看到开源项目发布的时候都带一个 jsp 容器(jetty)。拿来做 demo、开发、调试的服务器还是很不错的。今天就小试下,主要把它运行起来。 第一步下载:http://dist.codehaus.org/jetty/jetty-6.1.14/jetty-6.1.14.zip 是目前最新的稳定版。解压到如E:\jetty-6.1.14,其中比较重要的目录是:etc、contexts、webapps。个人认为可以类比tomcat的conf、conf\Catalina\localhost、webapps目录。contexts是热部署用的 ...
hibernate.jdbc.fetch_size 50 hibernate.jdbc.batch_size 25   这两个选项非常非常非常重要!!!将严重影响Hibernate的CRUD性能!   C = create, R = read, U = update, D = delete   Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。   例如一次查询1万条记录,对于Oracle的JDBC驱动来说,是不会1次性把1万条取出来的,而只会取出Fetch Size条数,当纪录集遍历完了这些记录以后,再去数据库取Fetch S ...
自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承HibernateDaoSupport当然包括sessionFactory,这点区别都不是特别重要的,下面这些区别就很重要了 2.getSession()方法是没有经过spring包装的,spring会把最原始的session给你,在使用完之后必须自己调用相应的c ...
自己测试的一些结果 , 可能不是很正确,往大家给给意见:   二级缓存和查询缓存都相当于一个map。 二级缓存缓存的key为id,value为实体对象。一般load(),iterate()使用到二级缓存,list()需要结合查询缓存使用。iterate() ...
Spring Dozer 使用: 使用Dozer映射复杂类型:       1. 数据类型不一致。       2. 级联映射。       3. 自定义映射。      Dozer其实底层使用了现成的BeanUtil,通过反射来映射,况且Dozer应用了Cache技术,应该比自个通过BeanUtils映射性能要好点。所以一般的应用应该不存在性能问题。    Dozer对于基本类型之间转换是不用配置的,比如Sting <------>Integer ,只要属性名称相同就Ok了。    而常用的Date与String映射配置如下:   <mapping date- ...
代码:   public class Parent {     public void validate(){               System.out.println("parent validate");             customer();             customer("ssssss");   }    public void customer(){              Sy ...
经常看到session.get()和session.load()方法的区别,书上说load方法可以充分利用二级缓存中的现有数据,而get方法仅在内部缓存进行数据查找,如果没有查找到数据,将越过二级缓存,直接调用SQL完成数据读取。可我试了试,执行结果确实两个方法都充分利用了二级缓存。 代码如下:   TuserDAO Java代码   package org.xiyou;       import java.util.Iterator;    import java.util.List;       import org.hibernate.Criter ...
list: 结果存入缓存,但不从缓存里面取;查询时属性连同id一起找出来,只有“一句”select;  iterate:结果存入缓存,并在缓存中查找结果;查询时先找出所有的 id,然后根据 id 到缓存里面查找,如果没有命中,再到数据库中查找该id对应的其他属性。可能会有多行 select。 分页:firstResult 与 maxResult 的影响。 Oracle:支持 rownum <= ? 的写法,因此在返回的结果集大小上对 list 和 iterate 都是一样的。但 maxResult 比较大时对使用 list 较为有利(不考虑缓存),因为 iterate 是要按 id 进行多 ...
Spring中事务的定义:一、Propagation :   key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_S ...
hibernate的两种事务管理jdbc 和jta方式。下边说说两者的区别一、说明一下jdbc和jta方式事务管理的区别:JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC Connection中实现。事务周期限于Connection的生命周期之内JTA 事务管理则由 JTA 容器实现,JTA 容器对当前加入事务的众多Connection 进行调度,实现其事务性要求。JTA的事务周期可横跨多个JDBC Connection生命周期。二、在了解jdbc和jta事务的基础上,再来讨论hibernate的两种事务对于基于JDBC Transaction的Hibernate ...
一、运行class文件执行带main方法的class文件,命令行为:Java <CLASS文件名> 注重:CLASS文件名不要带文件后缀.class 例如:java Test 假如执行的class文件是带包的,即在类文件中使用了:package <包名> 那应该在包的基路径下执行,命令行为:java <包名>.CLASS文件名 例如:PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:package com.ee2ee.test; PackageTest.java及编译后的class文件PackageTest. ...
Valang 是 Validation Language 的缩写,Valang Validator 的字面含义就是“使用验证语言的验证器”,是一种支持声明的验证器。本文详细的介绍了 ValangValidator 的使用和相关所需的配置。作为一种新型的验证工具,它提供的验证语言(valan ...
session flush在commit之前默认都会执行他。也可以手动执行它,他主要做了两件事: 1) 清理缓存。 2) 执行SQL。 session在什么情况下执行flush * 默认在事务提交时 * 显示的调用flush * 在执行查询前,如:iterate hibernate按照save( ...
import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Date;import java.util.List; import org.apache.log4j.Logger;import org.hibernate.Criteria;import org.hibernate.SQLQuery;import org.hi ...
Global site tag (gtag.js) - Google Analytics