??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品成人精品,日韩精品av,日本一区二区高清不卡http://www.aygfsteel.com/jikey/JAVA交流Q?8611691zh-cnWed, 18 Jun 2025 15:27:07 GMTWed, 18 Jun 2025 15:27:07 GMT60关于s2sh源代码下?/title><link>http://www.aygfsteel.com/jikey/archive/2010/07/24/327023.html</link><dc:creator>豪情</dc:creator><author>豪情</author><pubDate>Sat, 24 Jul 2010 10:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/jikey/archive/2010/07/24/327023.html</guid><wfw:comment>http://www.aygfsteel.com/jikey/comments/327023.html</wfw:comment><comments>http://www.aygfsteel.com/jikey/archive/2010/07/24/327023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jikey/comments/commentRss/327023.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jikey/services/trackbacks/327023.html</trackback:ping><description><![CDATA[xwork-core-2.1.6<br /> <a target="_blank" >http://release.opensymphony.com/xwork/2.1.6/</a><br /> struts 2.1.8<br /> <a target="_blank" >http://struts.apache.org/download.cgi#struts2181</a><br /> spring 3.0.3<br /> <a target="_blank" >http://www.springsource.org/download</a><br /> hibernate <br /> <a target="_blank" >http://sourceforge.net/projects/hibernate/files/</a><br /> itatis 3v<br /> <a target="_blank" >http://ibatis.apache.org/java.cgi</a><br /> <img src ="http://www.aygfsteel.com/jikey/aggbug/327023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jikey/" target="_blank">豪情</a> 2010-07-24 18:05 <a href="http://www.aygfsteel.com/jikey/archive/2010/07/24/327023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts 2.1.6 大ؕ?StrutsPrepareAndExecuteFilter学习W记http://www.aygfsteel.com/jikey/archive/2010/07/22/326885.html豪情豪情Thu, 22 Jul 2010 15:45:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/07/22/326885.htmlhttp://www.aygfsteel.com/jikey/comments/326885.htmlhttp://www.aygfsteel.com/jikey/archive/2010/07/22/326885.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/326885.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/326885.htmlpackage org.apache.struts2.dispatcher.ng.filter;

import org.apache.struts2.StrutsStatics;
import org.apache.struts2.dispatcher.Dispatcher;
import org.apache.struts2.dispatcher.ng.PrepareOperations;
import org.apache.struts2.dispatcher.ng.ExecuteOperations;
import org.apache.struts2.dispatcher.ng.InitOperations;
import org.apache.struts2.dispatcher.mapper.ActionMapping;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Handles both the preparation and execution phases of the Struts dispatching process.  This filter is better to use
* when you don't have another filter that needs access to action context information, such as Sitemesh.
*/
public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter {
    private PrepareOperations prepare;
    private ExecuteOperations execute; 
//初始化过滤器
    public void init(FilterConfig filterConfig) throws ServletException {
        InitOperations init = new InitOperations(); //初始化辅助对象,装了初始化的一些操?br />         try {
            FilterHostConfig config = new FilterHostConfig(filterConfig); //对filterConfigq行装
            init.initLogging(config); //通过config,初始化内部Struts的记?/span>


            Dispatcher dispatcher = init.initDispatcher(config); //通过config,创徏q初始化dispatcher

 

            init.initStaticContentLoader(config, dispatcher); //通过config和dispatcherQ初始化与过滤器相关的静态内容加载器

            prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher); //通过config和dispatcher,创徏request被处理前的系列操作对?/span>
            execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);//通过config和dispatcher,创徏处理request的系列操作对?/span>
 
        } finally {
            init.cleanup(); //清空ActionContext
        }

    }

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        try {
            prepare.createActionContext(request, response); //创徏ACTIONCONTEXT,q初始化Theadlocal 

            prepare.assignDispatcherToThread(); //指派dispatcherlTheadlocal
            prepare.setEncodingAndLocale(request, response); //讄request的编码和LOCAL
            request = prepare.wrapRequest(request); //装request
            ActionMapping mapping = prepare.findActionMapping(request, response); //查找q择创徏ActionMapping
            if (mapping == null) { //如果映射不存?/span>
                boolean handled = execute.executeStaticResourceRequest(request, response); //试图执行一个静态资源的h
                if (!handled) {
                    chain.doFilter(request, response);
                }
            } else { //如果存在映射
                execute.executeAction(request, response, mapping); //执行action
            }
        } finally {
            prepare.cleanupRequest(request); //清除request的Threadlocal
        }
    }

    public void destroy() {
        prepare.cleanupDispatcher();
    }
}

来自于:http://qianjian21.javaeye.com/blog/480206

最后不得不下蝲新版的struts 解决q个问题



豪情 2010-07-22 23:45 发表评论
]]>
Spring持久化的异常处理和模板类的介l?http://www.aygfsteel.com/jikey/archive/2010/07/06/325351.html豪情豪情Tue, 06 Jul 2010 03:33:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/07/06/325351.htmlhttp://www.aygfsteel.com/jikey/comments/325351.htmlhttp://www.aygfsteel.com/jikey/archive/2010/07/06/325351.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/325351.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/325351.html

豪情 2010-07-06 11:33 发表评论
]]>
hibernate中lazy的?http://www.aygfsteel.com/jikey/archive/2010/06/10/323256.html豪情豪情Thu, 10 Jun 2010 09:47:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/06/10/323256.htmlhttp://www.aygfsteel.com/jikey/comments/323256.htmlhttp://www.aygfsteel.com/jikey/archive/2010/06/10/323256.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/323256.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/323256.html


lazyQgq加?br />
Lazy的有效期Q只有在session打开的时候才有效Qsession关闭后lazy没效了?br />
lazy{略可以用在Q?br />
* <class>标签上:可以取值true/false

* <property>标签上,可以取值true/falseQ这个特性需要类增强

* <set>/<list>{集合上Q可以取gؓtrue/false/extra

* <one-to-one>/<many-to-one>{标{上Q可以取值false/proxy/no-proxy

6.1 get和load的区别:

* get不支持gq加载,而load支持?br />
* 当查询特定的数据库中不存在的数据Ӟget会返回nullQ而load则抛出异常?br />
6.2 c?Class)的gq加载:

* 讄<class>标签中的lazy="true",或是保持默认Q即不配|lazy属?

* 如果lazy的属性gؓtrueQ那么在使用loadҎ加蝲数据Ӟ只有实用到数据的时候才会发出sql语句Q这h可能减少pȝ的开销?br />
* //不会发出查询sql

       System.out.println("
group id=+ group.getId());

q里有一个问题,Z么加载主键的时候不需要发出sql语句?br />
6.3 集合(collection)的gq加载:可以取值trueQfalseQextra

* 保持集合上的lazy的默认|此时的效果和lazy="extra"是基本一L?br />
   
* 讄集合上的lazy=extra,此时的效果和lazy属性的默认值是基本一L。但是推荐用这个属性|因ؓ在统计时q种情况昑־比较。当然gq是有效果的?br />
* 讄集合上的lazy=false

true:默认取|它的意思是只有在调用这个集合获取里面的元素对象Ӟ才发出查询语句,加蝲光合元素的数据

false:取消懒加载特性,卛_加蝲对象的同Ӟ发出第二条查询语句加蝲其关联集合的数据

extra:一U比较聪明的懒加载策略,卌用集合的size
/contains{方法的时候,hibernate

q不会去加蝲整个集合的数据,而是发出一条聪明的SQL语句Q以便获得需要的|只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加蝲所有对象的数据

6.4 Hibernate单端兌懒加载策略:卛_<one-to-one>/<many-to-one>标签上可以配|?br />
懒加载策略。可以取gؓQfalse
/proxy/no-proxy

false:取消懒加载策略,卛_加蝲对象的同Ӟ发出查询语句Q加载其兌对象

proxy:q是hibernate对单端关联的默认懒加载策略,卛_有在调用到其兌对象的方法的时候才真正发出查询语句查询其对象数据,其关联对象是代理c?br />
no
-proxy:q种懒加载特性需要对c进行增强,使用no-proxyQ其兌对象不是代理c?br />
注意Q在class标签上配|的lazy属性不会媄响到兌对象!!!




豪情 2010-06-10 17:47 发表评论
]]>
Hibernate中Criteria的完整用?http://www.aygfsteel.com/jikey/archive/2010/06/10/323254.html豪情豪情Thu, 10 Jun 2010 09:44:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/06/10/323254.htmlhttp://www.aygfsteel.com/jikey/comments/323254.htmlhttp://www.aygfsteel.com/jikey/archive/2010/06/10/323254.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/323254.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/323254.html
最q在目中?nbsp;Spring ?nbsp;Hibernate q行开发,有感?nbsp;Criteria 比较好用Q在查询Ҏ

设计上可以灵zȝҎ Criteria 的特Ҏ方便地进行查询条件的l装。现在对 Hibernate的Criteria 的用法进行ȝQ?br />    Hibernate 设计?nbsp;CriteriaSpecification 作ؓ Criteria 的父接口Q下面提供了 Criteria和DetachedCriteria ?br />    Criteria ?nbsp;DetachedCriteria 的主要区别在于创建的形式不一P Criteria 是在U的Q所
以它是由 Hibernate Session q行创徏的;?nbsp;DetachedCriteria 是离U的Q创建时无需
SessionQDetachedCriteria 提供?nbsp;
2 个静态方?nbsp;forClass(Class) ?nbsp;forEntityName(Name)
q行DetachedCriteria 实例的创建?nbsp;Spring 的框架提供了getHibernateTemplate
().findByCriteria(detachedCriteria) Ҏ可以很方便地ҎDetachedCriteria 来返回查询结
果?br />    Criteria ?nbsp;DetachedCriteria 均可使用 Criterion ?nbsp;Projection 讄查询条g。可以设
|?nbsp;FetchMode( 联合查询抓取的模?nbsp;) Q设|排序方式。对?nbsp;Criteria q可以设|?nbsp;FlushModel
Q冲?nbsp;Session 的方式)?nbsp;LockMode Q数据库锁模式)?br /> 下面?nbsp;Criterion ?nbsp;Projection q行详细说明?br />      Criterion ?nbsp;Criteria 的查询条件。Criteria 提供?nbsp;
add(Criterion criterion) Ҏ?br /> d查询条g?br />      Criterion 接口的主要实现包括: Example ?nbsp;Junction ?nbsp;SimpleExpression 。?br /> Junction 的实际用是它的两个子类 conjunction ?nbsp;disjunction Q分别是使用 AND ?nbsp;OR ?br /> 作符q行来联l查询条仉合?br />      Criterion 的实例可以通过 Restrictions 工具cL创徏QRestrictions 提供了大量的静?br /> ҎQ如 eq Q等于)?nbsp;ge Q大于等于)?nbsp;between {来Ҏ的创?nbsp;Criterion 查询条g
QSimpleExpression 实例Q。除此之外, Restrictions q提供了Ҏ来创?nbsp;conjunction ?br /> disjunction 实例Q通过往该实例的 
add(Criteria) Ҏ来增加查询条件Ş成一个查询条仉?br /> ?br />      至于 Example 的创建有所不同Q?nbsp;Example 本n提供了一个静态方?nbsp;create(Object
entity) Q即Ҏ一个对象(实际使用中一般是映射到数据库的对象)来创建。然后可以设|一?br /> qo条gQ?br /> Example exampleUser 
=Example.create(u)
.ignoreCase() 
// 忽略大小?br /> .enableLike(MatchMode.ANYWHERE);
// ?nbsp;String cd的属性,无论在那里值在那里都匹配。相当于 %value%
  Project 主要是让 Criteria 能够q行报表查询Qƈ可以实现分组?nbsp;Project 主要?br /> SimpleProjection ?nbsp;ProjectionList ?nbsp;Property 三个实现。其?nbsp;SimpleProjection ?br /> ProjectionList 的实例化是由内徏?nbsp;Projections 来完成,如提供的 
avg ?nbsp;count ?nbsp;max ?br /> min ?nbsp;sum 可以让开发者很ҎҎ个字D进行统计查询?br />        Property 是对某个字段q行查询条g的设|,如通过Porperty.forName(“color”).in
(new String
[]{“black”,”red”,”write”}); 则可以创Z?nbsp;Project 实例。通过
criteria ?nbsp;
add(Project) Ҏ加入到查询条件中厅R?br />     使用 Criteria q行查询Q主要要清晰的是 Hibernate 提供了那些类和方法来满开发中?br /> 询条件的创徏和组装,下面介绍几种用法Q?br /> 1. 创徏一个Criteria 实例
org.hibernate.Criteria接口表示特定持久cȝ一个查询。Session?nbsp;Criteria实例的工厂?br /> Criteria crit 
= sess.createCriteria(Cat.class);
crit.setMaxResults(
50);
List cats 
= crit.list();
 
2. 限制l果集内?br /> 一个单独的查询条g是org.hibernate.criterion.Criterion 接口的一个实例?br />
org.hibernate.criterion.Restrictionsc?nbsp;定义了获得某些内|Criterioncd的工厂方法?br /> List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.like("name", "Fritz%") )
    .
add( Restrictions.between("weight", minWeight, maxWeight) )
    .list();

U束可以按逻辑分组?br />  
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.like("name", "Fritz%") )
    .
add( Restrictions.or(
        Restrictions.eq( "age", new 
Integer(0) ),
        Restrictions.
isNull("age")
    ) )
    .list();
 
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.in( "name", new String[] { "Fritz", "Izi", "Pk" } ) )
    .
add( Restrictions.disjunction()
        .
add( Restrictions.isNull("age") )
        .
add( Restrictions.eq("age", new Integer(0) ) )
        .
add( Restrictions.eq("age", new Integer(1) ) )
        .
add( Restrictions.eq("age", new Integer(2) ) )
    ) )
    .list();
 
Hibernate提供了相当多的内|criterioncd(Restrictions 子类), 但是其有用的是可以允许

你直接用SQL?br />  
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.sql("lower({alias}.name) like lower(?)", "Fritz%",

Hibernate.STRING) )
    .list();
 
{alias}占位W应当被替换查询实体的列别名?br /> Property实例是获得一个条件的另外一U途径。你可以通过调用Property.forName() 创徏一?br />
Property?br />  
  Property age 
= Property.forName("age");
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.disjunction()
        .
add( age.isNull() )
        .
add( age.eq( new Integer(0) ) )
        .
add( age.eq( new Integer(1) ) )
        .
add( age.eq( new Integer(2) ) )
    ) )
    .
add( Property.forName("name").in( new String[] { "Fritz", "Izi", "Pk" } ) )
    .list();
 
3. l果集排?br /> 你可以用org.hibernate.criterion.Order来ؓ查询l果排序?br />  
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.like("name", "F%")
    .addOrder( 
Order.asc("name") )
    .addOrder( 
Order.desc("age") )
    .setMaxResults(
50)
    .list();
 
List cats 
= sess.createCriteria(Cat.class)
    .
add( Property.forName("name").like("F%") )
    .addOrder( Property.forName("name").
asc() )
    .addOrder( Property.forName("age").
desc() )
    .setMaxResults(
50)
    .list();
 
4. 兌
你可以用createCriteria()非常Ҏ的在互相兌的实体间建立 U束?br />  
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.like("name", "F%")
    .createCriteria("kittens")
        .
add( Restrictions.like("name", "F%")
    .list();


注意W二?nbsp;createCriteria()q回一个新?nbsp;Criteria实例Q该实例引用kittens 集合中的元素?br /> 接下来,替换形态在某些情况下也是很有用的?br />  
List cats 
= sess.createCriteria(Cat.class)
    .createAlias("kittens", "kt")
    .createAlias("mate", "mt")
    .
add( Restrictions.eqProperty("kt.name", "mt.name") )
    .list();


(createAlias()q不创徏一个新?nbsp;Criteria实例?
Cat实例所保存的之前两ơ查询所q回的kittens集合?nbsp;没有被条仉qo的。如果你希望只获?br />
W合条g的kittensQ?nbsp;你必M用returnMaps()?br />  
List cats 
= sess.createCriteria(Cat.class)
    .createCriteria("kittens", "kt")
    .
add( Restrictions.eq("name", "F%") )
    .returnMaps()
    .list();
Iterator iter 
= cats.iterator();
while ( iter.hasNext() ) {
    Map map 
= (Map) iter.next();
    Cat cat 
= (Cat) map.get(Criteria.ROOT_ALIAS);
    Cat kitten 
= (Cat) map.get("kt");
}

5. 动态关联抓?br /> 你可以用setFetchMode()在运行时定义动态关联抓取的语义?br />  
List cats 
= sess.createCriteria(Cat.class)
    .
add( Restrictions.like("name", "Fritz%") )
    .setFetchMode("mate", FetchMode.EAGER)
    .setFetchMode("kittens", FetchMode.EAGER)
    .list();
 
q个查询可以通过外连接抓取mate和kittens?br />  
6. 查询CZ
org.hibernate.criterion.Examplecd怽通过一个给定实?nbsp;构徏一个条件查询?br />  
Cat cat 
= new Cat();
cat.setSex(
'F');
cat.setColor(Color.BLACK);
List results 
= session.createCriteria(Cat.class)
    .
add( Example.create(cat) )
    .list();


版本属性、标识符和关联被忽略。默认情况下gؓnull的属性将被排除?br /> 可以自行调整Example使之更实用?br />  
Example example 
= Example.create(cat)
    .excludeZeroes()           
//exclude zero valued properties
    .excludeProperty("color")  
//exclude the property named "color"
    .ignoreCase()              
//perform case insensitive string comparisons
    .enableLike();             
//use like for string comparisons
List results 
= session.createCriteria(Cat.class)
    .
add(example)
    .list();


甚至可以使用examples在关联对象上攄条g?br />  
List results 
= session.createCriteria(Cat.class)
    .
add( Example.create(cat) )
    .createCriteria("mate")
        .
add( Example.create( cat.getMate() ) )
    .list();


7. 投媄(Projections)、聚合(aggregationQ和分组Q?/span>groupingQ?br /> org.hibernate.criterion.Projections?nbsp;Projection 的实例工厂。我们通过调用

setProjection()应用投媄C个查询?br />  
List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.
rowCount() )
    .
add( Restrictions.eq("color", Color.BLACK) )
    .list();
 
List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .
add( Projections.rowCount() )
        .
add( Projections.avg("weight") )
        .
add( Projections.max("weight") )
        .
add( Projections.groupProperty("color") )
    )
    .list();



在一个条件查询中没有必要昑ּ的?nbsp;"
group by" 。某些投q型就是被定义?nbsp;分组投媄Q他

们也出现在SQL的group by子句中?br />
可以选择把一个别名指z一个投影,q样可以使投影DU束或排序所引用。下面是两种不同?br />
实现方式Q?br />  
List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.alias( Projections.groupProperty("color"), "colr" ) )
    .addOrder( 
Order.asc("colr") )
    .list();



List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.groupProperty("color").
as("colr") )
    .addOrder( 
Order.asc("colr") )
    .list();
 
alias()和as()Ҏ便的一个投影实例包装到另外一?nbsp;别名的Projection实例中。简而言之,

当你d一个投影到一个投影列表中?nbsp;你可以ؓ它指定一个别名:
 
List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .
add( Projections.rowCount(), "catCountByColor" )
        .
add( Projections.avg("weight"), "avgWeight" )
        .
add( Projections.max("weight"), "maxWeight" )
        .
add( Projections.groupProperty("color"), "color" )
    )
    .addOrder( 
Order.desc("catCountByColor") )
    .addOrder( 
Order.desc("avgWeight") )
    .list();


List results 
= session.createCriteria(Domestic.class, "cat")
    .createAlias("kittens", "kit")
    .setProjection( Projections.projectionList()
        .
add( Projections.property("cat.name"), "catName" )
        .
add( Projections.property("kit.name"), "kitName" )
    )
    .addOrder( 
Order.asc("catName") )
    .addOrder( 
Order.asc("kitName") )
    .list();


也可以用Property.forName()来表C投影:
 
List results 
= session.createCriteria(Cat.class)
    .setProjection( Property.forName("name") )
    .
add( Property.forName("color").eq(Color.BLACK) )
    .list();
List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .
add( Projections.rowCount().as("catCountByColor") )
        .
add( Property.forName("weight").avg().as("avgWeight") )
        .
add( Property.forName("weight").max().as("maxWeight") )
        .
add( Property.forName("color").group().as("color" )
    )
    .addOrder( 
Order.desc("catCountByColor") )
    .addOrder( 
Order.desc("avgWeight") )
    .list();


8. ȝ(detached)查询和子查询
DetachedCriteriacM你在一个session范围之外创徏一个查询,q且可以使用L?nbsp;Session?br />
执行它?br />  
DetachedCriteria query 
= DetachedCriteria.forClass(Cat.class)
    .
add( Property.forName("sex").eq('F') );
//创徏一个Session
Session session 
= .;
Transaction txn = session.beginTransaction();
List results 
= query.getExecutableCriteria(session).setMaxResults(100).list();
txn.
commit();
session.
close();


DetachedCriteria也可以用以表C子查询。条件实例包含子查询可以通过 Subqueries或?br /> Property获得?br />  
DetachedCriteria avgWeight 
= DetachedCriteria.forClass(Cat.class)
    .setProjection( Property.forName("weight").
avg() );
session.createCriteria(Cat.class)
    .
add( Property.forName("weight).gt(avgWeight) )
    .list();
DetachedCriteria weights 
= DetachedCriteria.forClass(Cat.class)
    .setProjection( Property.forName("weight") );
session.createCriteria(Cat.class)
    .
add( Subqueries.geAll("weight", weights) )
    .list();

怺兌的子查询也是有可能的Q?br />  
DetachedCriteria avgWeightForSex 
= DetachedCriteria.forClass(Cat.class, "cat2")
    .setProjection( Property.forName("weight").
avg() )
    .
add( Property.forName("cat2.sex").eqProperty("cat.sex") );
session.createCriteria(Cat.class, "cat")
    .
add( Property.forName("weight).gt(avgWeightForSex) )
    .list();




豪情 2010-06-10 17:44 发表评论
]]>
中国java开源界最可爱的h们【{?/title><link>http://www.aygfsteel.com/jikey/archive/2010/06/09/323197.html</link><dc:creator>豪情</dc:creator><author>豪情</author><pubDate>Wed, 09 Jun 2010 14:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/jikey/archive/2010/06/09/323197.html</guid><wfw:comment>http://www.aygfsteel.com/jikey/comments/323197.html</wfw:comment><comments>http://www.aygfsteel.com/jikey/archive/2010/06/09/323197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jikey/comments/commentRss/323197.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jikey/services/trackbacks/323197.html</trackback:ping><description><![CDATA[http://space.itpub.net/11310314/viewspace-178<br /> <div> <p style="text-indent: 21pt;"><span style="font-family: 宋体;">记得d某世界的大师到中国忽悠几天后回去说Q中国只?a href="javascript:;" onclick="javascript:tagshow(event, '%BF%AA%D4%B4');" target="_self"><u><strong>开?/strong></u></a>“消费?#8221;Q那话的意思好像我们只会从开源社Z索取Q? 不懂得A献似的。那么实际情况又是如何呢Q这是昨晚整理的中国</span><a href="javascript:;" onclick="javascript:tagshow(event, 'Java');" target="_self"><u><strong>Java</strong></u></a><span style="font-family: 宋体;">开源领域的斗士们的情况Q根据他们对中国</span>java<span style="font-family: 宋体;">开源界的A献倹{重要性、发展潜力等作了一个综合评P可以说他们是中国</span>Java<span>开源界里最可爱的h。欢q大家来看看q里是否有你认识英雄?br /> <br /> <strong>1?nbsp; Huihoo动力—当之无愧的老大</strong> </span></p> <p style="margin-left: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>龙辉</span>(Allen)<span style="font-size: 10pt; color: #cc0033; font-family: 宋体;">?/span><span style="font-family: 宋体;">E勇</span>(Peter)<span style="font-family: 宋体;">、杨?/span>(Orbat)</p> <p style="margin-left: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>JFox<span style="font-family: 宋体;">{?/span></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.huihoo.org/</a></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>说到</span>java<span style="font-family: 宋体;">开源,大家不可能不知道</span>Huihoo<span style="font-family: 宋体;">Q?/span>Huihoo<span style="font-family: 宋体;">曄创造了很多奇迹Q不是Ҏ团队成员的技术水q是开源理c开源组l的理{都可以说是最? 的,</span>JFox<span style="font-family: 宋体;">目 一直具有生命力Q?/span>huihoo<span style="font-family: 宋体;">q么多年了也一直具有生命力Q?/span>Allen<span style="font-family: 宋体;">?/span>Peter<span style="font-family: 宋体;">?/span>Orbat<span style="font-family: 宋体;">{对q个团队q么多年来的坚持及A献,要选国内最值得推崇的开源团体,</span>huihoo排在W一位可以说是当之无愧。因此,他们是最可爱的h?br />  </p> <p style="text-indent: 21pt;"><strong>2<span style="font-family: 宋体;">?/span>Jdon<span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">高处不胜?/span></strong></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表人物Q?/span></strong><span style="font-size: 9pt; font-family: 宋体;">彭晨?/span><span style="font-size: 9pt; font-family: Arial;">(</span><span style="font-size: 9pt; font-family: 宋体;">板桥里h</span><span style="font-size: 9pt; font-family: Arial;">)</span></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>jdonframework</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.jdon.com/</a></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>作ؓ国内W一个开源框架的发v人,作ؓ国内W一个敢于与国外框架叫板的板桥里人,他曾l带l大家很? 很多的欣喜及回忆Q桥技术水q_造诣q里更不用说了Q他“</span><span style="font-family: 宋体;">一个开源h? 孤独告白”Q有Ҏ桑,有点心寒Q?/span>jdon<span style="font-family: 宋体;">今天的现Ӟ是中国对待技术h才的真实写照。无论如何,选中?/span>Java开源界最可爱的hQ板桥当之无愧?br />  </p> <p style="text-indent: 21pt;"><strong>3<span style="font-family: 宋体;">?/span>Apusic OperaMasks<span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">谁说开源不赚钱</span></strong></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表人物Q?/span></strong><span style="font-family: 宋体;">袁红岗 张勇</span></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>OperaMasks</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.operamasks.org/</a></p> <p><strong><span style="font-family: 宋体;">  评:</span></strong>1000<span style="font-family: 宋体;">万h民币的投入,一?#8220;勇敢者的? 世界”也算是在中国开源界掀起了一阉|L澜,产品发布会上那一份䆾合同Q更是让同行的老M有点眼红。除d业因素不_q两?/span>Check out<span style="font-family: 宋体;">?/span>OperaMasks<span style="font-family: 宋体;">的代码,也看了示例, 表现非常不错Q值得深层ơ的</span>java<span style="font-family: 宋体;">开发h员学习。老袁深厚的技术功底、老张卖力的全国\演,公司l营战略的成功,</span>OperaMasks<span>能否发展成ؓ一个最能适合中国国情的开源组l, 让我们拭目以待?br /> </span></p> <p><strong>4<span style="font-family: 宋体;">?/span>EasyJF<span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">后生可畏</span></strong></p> <p><span style="font-family: 宋体;">  <strong>代表人物Q?/strong>? 世友</span>(<span style="font-family: 宋体;">大</span>)<span style="font-family: 宋体;">、吴嘉俊</span>(stef_wu)<span style="font-family: 宋体;">、程?/span>(<span style="font-family: 宋体;">天一</span>)</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>EasyJWeb</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.easyjf.com</a></p> <p><span style="font-family: 宋体;"><strong>  评:</strong>? 了大峡小朋友的一些文章,</span><span style="font-family: 宋体;">看到</span>EasyJF<span style="font-family: 宋体;">现在的发展,真真实实有一U后? 可畏的感叏V他们有自己的专职团队,有网下办公室Q还有硬件设施,q拥有一有Ȁ情、好学的q轻伙子们。虽然要得到中国q认可是很不容易的事情Q? 但搜索一下带是发现国内已l有不少|站在用</span>EasyJWeb做开发。因此,最可爱的h当他们莫属,衷心希望他们能成功?br /> </p> <p><strong>5<span style="font-family: 宋体;">?/span>SpringSide<span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">天才团队</span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>? ?/span>(<span style="font-family: 宋体;">江南白衣</span>)<span style="font-family: 宋体;">?a name="cac">陈俊</a></span>(cac)<span style="font-family: 宋体;">、田?/span>(<span style="font-family: 宋体;">差沙</span>)</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>SpringSide</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.springside.org.cn/</a></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>虽然只是站在春天的傍边,但已l带l了整天忙于q逐新技术、新潮流?/span>Java<span style="font-family: 宋体;">E序员们很多极具参考h值的东西。江 南白衣同学可以算是一个天才般的h物,技术的d、接受ƈ译释新技术的速度、能力及水^Q可以说是少C的少数。因此,</span>SpringSide<span style="font-family: 宋体;">可以U得上最h偶像? 质的团队Q?/span>Java<span>开源界最可爱的hQ他? 当之无愧Q希望他们能?#8220;傍边”走到“中间”?br /> </span></p> <p style="text-indent: 21pt;"><strong>6<span style="font-family: 宋体;">?/span>Buffalo<span style="font-family: 宋体;">C֌</span><span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">羃是精</span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>? 金洲</span>(Michael Chen)</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>Buffalo</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?a target="_blank">http://buffalo.sourceforge.net/</a></span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;">评:作ؓW一个国人开发的</span>Ajax<span style="font-family: 宋体;">框架Q作Z个能把一直受</span>java<span style="font-family: 宋体;">大拿们岐?/span>javascript<span style="font-family: 宋体;">玩{得如何熟悉的目Q作Z个能几年坚持更新的开源项目,</span>Buffalo<span style="font-family: 宋体;">是成功的Q?/span>Michael Chen<span>让我们体会到国内开源A献者们执着与坚持? 他是不是最可爱的hQ谁是?<br />  </span></p> <p style="text-indent: 21pt;"><strong>7<span style="font-family: 宋体;">、天乙社?/span><span style="font-family: 宋体;">—n受开 ?/span><span style="font-family: 宋体;">动力</span></strong></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表人物Q?/span></strong>laoer</p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表目Q?/strong>天乙开源社?/span></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.laoer.com/</a></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>有多开源项目的产品发布?/span>8.0<span style="font-family: 宋体;">Q从</span>jsp<span style="font-family: 宋体;">?/span>struts1<span style="font-family: 宋体;">?/span>struts2<span style="font-family: 宋体;">一路走来,一直能跟着新技术的步伐Q不断改q及完善。因此,当之无愧</span>java开源界最可爱的h?br /> </p> <p style="text-indent: 21pt;"><strong>8<span style="font-family: 宋体;">?/span>CowNew<span style="font-family: 宋体;">开?/span><span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">真有一点牛</span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>? 中科</span></p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>CowNewSQL</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?a target="_blank">http://www.cownew.com/</a></span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>看过杨中U同学的两篇文章Q我觉得他是可爱的。多数据库翻译引?/span>CowNewSQL<span style="font-family: 宋体;">的h值将在哪里体玎ͼ</span>CowNew<span>能在何时l我们带来更多实用的东西Q值得大家期待。无? 如何Q他们的q步是有目共睏V?br /> </span></p> <p style="text-indent: 21pt;"><strong>9<span style="font-family: 宋体;">?/span>CommonTemplate<span style="font-family: 宋体;">?/span><span style="font-family: 宋体;">值得期待</span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>? ?/span>(javatar)</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">代表目Q?/span></strong>CommonTemplate</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?a target="_blank">http://www.commontemplate.org/</a></span></strong></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>评:</strong>也许很多Z知道q个目Q但他确实是一个很不错的模板引擎,金子L发光?/span><span style="font-family: 宋体-Ҏ大字符?">时?/span><span>。只要坚持,怿有一 天梁飞同学会l大家带来更多的惊喜?br /> </span></p> <p style="text-indent: 21pt;"><strong>10、恩信—小公司也能开?/strong><br /> </p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表人物Q?/strong>刘有?/span></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><strong>代表目Q?/strong>? 信开?/span>ERP</p> <p style="text-indent: 21pt;"><strong><span style="font-family: 宋体;">官方|站Q?/span></strong><a target="_blank">http://www.nseer.com/</a></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;">评:听过刘ȝ演讲Q从“捕鱼”?#8220;</span><span style="font-family: 宋体;">授之以渔”Q从刘Mp? 列运作手法,我觉得恩信可以成为很多追逐开源但又没有上千万资金来投入而d为是否参加开源而徘徊的老M的参考学习的案例。虽然没有技术牛人加盟,虽然 q用稍为古老的技术体p,但既然开源了Q总能让我们学到很多东ѝ呵呵,所有最可爱的开源h中,刘ȝ是算是最q长的了Q祝他们开?/span><span style="font-family: ˎ̥;">ERP</span>大卖?br /> </p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;">除了上面</span>10<span style="font-family: 宋体;">个开源项目里面的最可爱的h以外Q还有一些曾l激情一时ƈl大家带来快乐,但因为很多原因没能坚持下来的开源斗士们Q这里就不逐一列出来,Z 们感到惋惜的同时Q也希望有一天能看到更多的h与企业参与到开源的队伍中来。当Ӟ可能q有一些比较优U的团队我没有发现Q而恰好你又知道,那么h告诉 我,在今后的日子里我会尽我的力量也来做点贡献?/span></p> <p style="text-indent: 21pt;"><span style="font-family: 宋体;"><span style="color: red;"><span style="font-family: 宋体;">版权声明Q本文版权由</span>Blogjava<span style="font-family: 宋体;">?a href="../../rain2008/">雨开?/a>所有,受法律保护。欢q{载,转蝲请保留作者版? 声明及连接?/span></span></span></p> </div> <br /> <img src ="http://www.aygfsteel.com/jikey/aggbug/323197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jikey/" target="_blank">豪情</a> 2010-06-09 22:08 <a href="http://www.aygfsteel.com/jikey/archive/2010/06/09/323197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate中mysqlqhttp://www.aygfsteel.com/jikey/archive/2010/06/08/323104.html豪情豪情Tue, 08 Jun 2010 15:21:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/06/08/323104.htmlhttp://www.aygfsteel.com/jikey/comments/323104.htmlhttp://www.aygfsteel.com/jikey/archive/2010/06/08/323104.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/323104.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/323104.html<property name="connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</property>

<!-- q -->
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>


豪情 2010-06-08 23:21 发表评论
]]>
transient?persistent、detached状?/title><link>http://www.aygfsteel.com/jikey/archive/2010/06/08/323100.html</link><dc:creator>豪情</dc:creator><author>豪情</author><pubDate>Tue, 08 Jun 2010 14:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/jikey/archive/2010/06/08/323100.html</guid><wfw:comment>http://www.aygfsteel.com/jikey/comments/323100.html</wfw:comment><comments>http://www.aygfsteel.com/jikey/archive/2010/06/08/323100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jikey/comments/commentRss/323100.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jikey/services/trackbacks/323100.html</trackback:ping><description><![CDATA[来自于:http://www.aygfsteel.com/apple0668/archive/2008/10/09/233436.html<br /> <font style="background-color: #c7edcc;"><img alt="" src="../../images/blogjava_net/apple0668/hibernate/show_fpic.png" border="0" height="366" width="412" /></font><br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">transient</span><span style="color: #000000;">、persistent?nbsp;detached状态关pd如下Q?br /> <br /> <br /> <br /> </span><span style="color: #000000;">1</span><span style="color: #000000;">、transient状态的特征Q?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> 在数据库中没有与之匹配的数据<br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> 没有U_session的管?br />  <br /> </span><span style="color: #000000;">2</span><span style="color: #000000;">、persistent状态的特征Q?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> persistent状态的对象在数据库中有与之匚w的数?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> U_了session的管?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> 在清理缓存(脏数据检查)的时?会和数据库同?br />  <br /> </span><span style="color: #000000;">3</span><span style="color: #000000;">、detached状态的特征Q?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> 在数据库中有与之匚w的数?br />                                      </span><span style="color: #000000;">*</span><span style="color: #000000;"> 没有U_session的管?nbsp;<br /> <br /> PSQ了解这几种状态对深入使用hibernate有比较大的意义,开发过E中减少很多不必要的错误?/span></div> <br /> <img src ="http://www.aygfsteel.com/jikey/aggbug/323100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jikey/" target="_blank">豪情</a> 2010-06-08 22:57 <a href="http://www.aygfsteel.com/jikey/archive/2010/06/08/323100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SessionFactory的构?/title><link>http://www.aygfsteel.com/jikey/archive/2010/06/08/323096.html</link><dc:creator>豪情</dc:creator><author>豪情</author><pubDate>Tue, 08 Jun 2010 12:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/jikey/archive/2010/06/08/323096.html</guid><wfw:comment>http://www.aygfsteel.com/jikey/comments/323096.html</wfw:comment><comments>http://www.aygfsteel.com/jikey/archive/2010/06/08/323096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jikey/comments/commentRss/323096.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jikey/services/trackbacks/323096.html</trackback:ping><description><![CDATA[来自于:http://linweihan.javaeye.com/blog/144652<br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">2.6</span><span style="color: #000000;">  构徏SessionFactory<br /> Hibernate的SessionFactory接口提供Sessioncȝ实例QSessioncȝ于完成对数据库的操作。由?nbsp;SessionFactory实例是线E安全的Q而Session实例不是U程安全的)Q所以每个操作都可以q同一个SessionFactory来获取Session?br /> <br /> Hibernate配置文g分ؓ两种格式Q一U是xml格式的配|文Ӟ另一U是Java属性文件格式的配置文gQ因此构建SessionFactory也有两种ҎQ下面分别介l?br /> <br /> </span><span style="color: #000000;">2.6</span><span style="color: #000000;">.</span><span style="color: #000000;">1</span><span style="color: #000000;">  从XML文gd配置信息构徏 SessionFactory<br /> 从XML文gd配置信息构徏SessionFactory的具体步骤如下?br /> <br /> Q?/span><span style="color: #000000;">1</span><span style="color: #000000;">Q创Z个Configuration对象Qƈ通过该对象的configura()Ҏ加蝲Hibernate 配置文gQ代码如下?br /> <br /> Configuration config </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Configuration().configure();<br /> <br /> configura()ҎQ用于告诉Hibernate加蝲hibernate.cfg.xml文g?nbsp;Configuration在实例化旉认加载classpath中的hibernate.cfg.xmlQ当然也可以加蝲名称不是hibernate.cfg.xml的配|文Ӟ例如wghhibernate.cfg.xmlQ可以通过以下代码实现?br /> <br /> Configuration config </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Configuration().configure(</span><span style="color: #000000;">"</span><span style="color: #000000;">wghhibernate.cfg.xml</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> <br /> Q?/span><span style="color: #000000;">2</span><span style="color: #000000;">Q完成配|文件和映射文g的加载后Q将得到一个包括所有Hibernateq行期参数的 Configuration实例Q通过Configuration实例<br /> <br /> 的buildSessionFactory()Ҏ可以构徏一个惟一的SessionFactoryQ代码如下?br /> <br /> SessionFactory sessionFactory </span><span style="color: #000000;">=</span><span style="color: #000000;"> config.buildSessionFactory();<br /> <br /> 构徏SessionFactory要放在静态代码块中,因ؓ它只在该c被加蝲时执行一ơ。一个典型的构徏 SessionFactory的代码如下?br /> <br /> 例程2</span><span style="color: #000000;">-</span><span style="color: #000000;">9</span><span style="color: #000000;">Q光盘\mr\</span><span style="color: #000000;">02</span><span style="color: #000000;">\sl\</span><span style="color: #000000;">09</span><span style="color: #000000;">\CoreSession.java<br /> <br /> java 代码<br /> <br />   </span>import org.hibernate.*;   <br />   <br /> import org.hibernate.cfg.*;   <br />   <br /> public class CoreSession {   <br />   <br /> static SessionFactory sessionFactory;   <br /> //注意到这里的SessionFactory都是static?br /> //初始化Hibernate,创徏 SessionFactory实例,只在该类被加载到内存时执行一?nbsp;  <br />   <br /> static{   <br />   <br />     try{   <br />   <br />          Configuration config = new Configuration().configure();   <br />   <br />          sessionFactory = config.buildSessionFactory();   <br />   <br />     } catch (Exception e) {   <br />   <br />         System.out.println(e.getMessage());   <br />   <br />     }   <br />   <br /> }   <br />   <br /> }   <br /> <span style="color: #000000;"> <br /> <br /> </span><span style="color: #000000;">2.6</span><span style="color: #000000;">.</span><span style="color: #000000;">2</span><span style="color: #000000;">  从Java属性文件读取配|信息构建SessionFactory<br /> 从Java属性文件读取配|信息构建SessionFactory的具体步骤如下?br /> <br /> Q?/span><span style="color: #000000;">1</span><span style="color: #000000;">Q创Z个Configuration对象Q此时Hibernate会默认加载classpath中的配置文ghibernate.propertiesQ代码如下?br /> <br /> Configuration config </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Configuration();<br /> <br /> Q?/span><span style="color: #000000;">2</span><span style="color: #000000;">Q由于在配置文g中缺相应的配置映射文g的信息,所以此处需要通过~码方式加蝲Q这可以通过Configuration对象?br /> <br /> addClass()Ҏ实现Q具体代码如下?br /> <br /> config.addClass(BranchForm.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);<br /> <br /> addClass()Ҏ用于加蝲实体cR?br /> <br /> Q?/span><span style="color: #000000;">3</span><span style="color: #000000;">Q完成配|文件和映射文g的加载后Q将得到一个包括所有Hibernateq行期参数的Configuration实例Q通过Configuration实例<br /> <br /> 的buildSessionFactory()Ҏ可以构徏一个惟一的SessionFactoryQ代码如下?br /> <br /> SessionFactory sessionFactory </span><span style="color: #000000;">=</span><span style="color: #000000;"> config.buildSessionFactory();<br /> <br /> 构徏SessionFactory要放在静态代码块中,因ؓ它只需在该c被加蝲时执行一ơ,一个典型的构徏SessionFactory的代码如下?br /> <br /> 例程2</span><span style="color: #000000;">-</span><span style="color: #000000;">10</span><span style="color: #000000;">Q光盘\mr\</span><span style="color: #000000;">02</span><span style="color: #000000;">\sl\</span><span style="color: #000000;">10</span><span style="color: #000000;"> \CoreSession.java<br /> <br /> java 代码<br /> </span><span style="color: #000000;"><br /> </span>import org.hibernate.*;   <br />   <br /> import org.hibernate.cfg.*;   <br />   <br /> public class CoreSession {   <br />   <br /> static SessionFactory sessionFactory;   <br />   <br /> //初始化Hibernate,创徏 SessionFactory实例,只在该类被加载到内存时执行一?nbsp;  <br />   <br /> static{   <br />   <br />     try{   <br />   <br />        Configuration config = new Configuration();   <br />   <br />         config.addClass(BranchForm.class);   <br />   <br />         sessionFactory = config.buildSessionFactory();   <br />   <br />     } catch (Exception e) {   <br />   <br />         System.out.println(e.getMessage());   <br />   <br />     }   <br />   <br /> }   <br />   <br /> }  <br /> <br /> </div> <br /> <img src ="http://www.aygfsteel.com/jikey/aggbug/323096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jikey/" target="_blank">豪情</a> 2010-06-08 20:48 <a href="http://www.aygfsteel.com/jikey/archive/2010/06/08/323096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate主键生成方式 Key Generatorhttp://www.aygfsteel.com/jikey/archive/2010/06/07/322998.html豪情豪情Mon, 07 Jun 2010 14:10:00 GMThttp://www.aygfsteel.com/jikey/archive/2010/06/07/322998.htmlhttp://www.aygfsteel.com/jikey/comments/322998.htmlhttp://www.aygfsteel.com/jikey/archive/2010/06/07/322998.html#Feedback0http://www.aygfsteel.com/jikey/comments/commentRss/322998.htmlhttp://www.aygfsteel.com/jikey/services/trackbacks/322998.html


Hibernate主键生成方式  Key Generator
主键产生?br /> 可选项说明Q?br />
1) assigned
主键由外部程序负责生成,无需Hibernate参与?br />
2) hilo
通过hi
/lo 法实现的主键生成机Ӟ需要额外的数据库表保存主键生成历史状态?br />
3) seqhilo
与hilo cMQ通过hi
/lo 法实现的主键生成机Ӟ只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库Q如Oracle?br />
4) increment
主键按数值顺序递增。此方式的实现机制ؓ在当前应用实例中l持一个变量,以保存着当前的最大|之后每次需要生成主键的时?br /> 此值加1作ؓ主键?br /> q种方式可能产生的问题是Q如果当前有多个实例讉K同一个数据库Q那么由于各个实例各自维护主键状态,不同实例可能生成同样的主键,从而造成主键重复异常。因此,如果同一数据库有多个实例讉KQ此方式必须避免使用?br />
5) identity
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL中的主键生成机制?br />
6) sequence
采用数据库提供的sequence 机制生成主键。如Oralce 中的Sequence?br />
7native
由HibernateҎ底层数据库自行判断采用identity、hilo、sequence其中一U作Z键生成方式?br />
8) uuid.hex
由HibernateZ128 位唯一g生算法生?6 q制数|~码后以长度32 的字W串表示Q作Z键?br />
9) uuid.string
与uuid.hex cMQ只是生成的主键未进行编码(长度16Q。在某些数据库中可能出现问题Q如PostgreSQLQ?br />
10) foreign
使用外部表的字段作ؓ主键?br /> 一般而言Q利用uuid.hex方式生成主键提供最好的性能和数据库q_适应性?br />
另外׃常用的数据库Q如Oracle、DB2、SQLServer、MySql {,都提供了易用的主键生成机ӞAuto
-Increase 字段或者SequenceQ。我们可以在数据库提供的主键生成机制上,采用generator-class=native的主键生成方式。不q值得注意的是Q一些数据库提供的主键生成机制在效率上未必最佻I大量q发insert数据时可能会引v表之间的互锁?br /> 数据库提供的主键生成机制Q往往是通过在一个内部表中保存当前主键状态(如对于自增型主键而言Q此内部表中q护着当前的最大值和递增量)Q之后每ơ插入数据会dq个最大|然后加上递增量作为新记录的主键,之后再把q个新的最大值更新回内部表中Q这P一ơInsert操作可能D数据库内部多ơ表d操作Q同时伴随的q有数据的加锁解锁操作,q对性能产生了较大媄响?br /> 因此Q对于ƈ发Insert要求较高的系l,推荐采用uuid.hex 作ؓ主键生成机制?br />



豪情 2010-06-07 22:10 发表评论
]]>
վ֩ģ壺 | | ͨ| ͩ| | Ƽ| | ɽ| ƴ| | | Ž| Դ| | | | ѷ| ϲ| ʳ| ƶ| ˼| | ϳ| ׯ| | | | ˮ| | | ˾| | | | | | ͸| ͩ| Ϫ| | |