`
stingh711
  • 浏览: 124369 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

A Hibernate util written by groovy

    博客分类:
  • java
阅读更多

Hibernate.groovy


<!----> import  org.hibernate.cfg.Configuration
import  org.hibernate.Session
import  org.hibernate.SessionFactory
import  org.hibernate.Transaction
import  org.hibernate.tool.hbm2ddl.SchemaUpdate

class  Hibernate {
    def 
static  sessionFactory
   
static  { 
       
try  { 
            Configuration cfg 
=   new  Configuration()
            cfg.configure()            
           
new  SchemaUpdate(cfg).execute( true true )      
            sessionFactory 
=  cfg.buildSessionFactory()    
        } 
catch  (Exception e) {     
            e.printStackTrace()      
        }    
    }    

    Hibernate() {}   

    
private  Session getSession() {    
        
return  sessionFactory.openSession()    
    }    

    Object execute(closure) {       
        def s 
=  getSession()        
            def tr 
=   null         
            def result 
=   null         
            
try  {            
                tr 
=  s.beginTransaction()          
                    result 
=  closure.call(s)       
                    tr.commit()      
            } 
catch  (Exception e) {     
                e.printStackTrace()      
                    
if  (tr  !=   null ) {     
                        tr.rollback()    
                    }        
            } 
finally  {     
                s.close()   
            }        
        
return  result   
    }    

    
void  saveOrUpdate(obj) {
        def saveClosure 
=  { s  ->  s.saveOrUpdate(obj) }      
        execute(saveClosure)    
    }    

    List executeQuery(hql) {     
        execute({ s 
->  s.createQuery(hql).list() })   
    }    

    List executeQuery(hql, parameters) {    
        def query 
=  { s  ->         
            def q 
=  s.createQuery(hql)        
                
if  (parameters  !=   null ) {         
                    
for  (i in  0 ..parameters.size() - 1 ) {       
                        q.setParameter(i, parameters[i])       
                    }            
                }            
            q.list()       
        }        
        execute(query)    
    }    

    def get(clazz, id) {    
        
return  execute({ s  ->  s.get(clazz, id) })   
    }    

    
void  delete(obj) {       
        execute({ s 
->  s.delete(obj) })   
    }
}

Instead of interface, I use Closure for callback

Blogged with Flock

<!---->

Tags: hibernategroovy

<!---->
分享到:
评论

相关推荐

    HibernateUtil.java Hibernate5.2.1

    Hibernate5.2.1 的工具类 创建session 和 sessionFactory

    groovy和Java相互调用1

    例如,如果要使用`java.util.Random`类,只需在Groovy脚本的开头写入`import java.util.Random`。然后,你可以像在Java中一样实例化和使用这个类。在给出的例子中,创建了一个`Random`对象并使用它生成一系列随机...

    groovy速查手册

    - 使用`groovy.util.Eval`类来评估存储在Java字符串中的简单代码。 - 通过`groovy.util.GroovyShell`提供更灵活的绑定和可选的预解析功能。 #### 三、语言元素 Groovy提供了丰富的语言元素,包括但不限于: - **...

    Groovy安装以及简单使用

    这里,我们导入了Java的`java.util.Date`类,并使用Groovy的字符串插值特性打印出当前日期和时间。 Groovy也提供了许多内置的工具和库,如Gradle构建工具,它是用Groovy编写的,允许开发者以更简洁的方式编写构建...

    groovy2.3.2

    Groovy 2.3.2支持Java的并发API,如`java.util.concurrent`包,允许开发者创建高效、可扩展的并发应用程序。它提供了对线程、执行器服务、并发工具类(如CountDownLatch、CyclicBarrier、Semaphore)以及Future和...

    Hibernate Jar包(全)

    Hibernate是一款强大的Java持久化框架,它为开发人员提供了一种简单、高效的方式来管理数据库操作,使得应用程序能够与各种关系型数据库进行交互。本压缩包包含了Hibernate 2.2.5版本的所有必需jar包,这对于使用...

    asm-util.jar

    asm-util-1.3.4.jar, asm-util-1.3.5.jar, asm-util-1.4.1.jar, asm-util-1.4.3.jar, asm-util-1.5.1.jar, asm-util-1.5.2.jar, asm-util-1.5.3.jar, asm-util-2.0.jar, asm-util-2.1.jar, asm-util-2.2.1-sources....

    groovy正则表达式基础1

    - 使用`~`运算符:`def reg1 = ~'he*llo'`,这里的`reg1`是一个`java.util.regex.Pattern`类型的对象。 - 使用斜杠`/`:`def reg2 = /he*llo/`,尽管看起来像一个字符串,但在这里`reg2`同样会被编译为`Pattern`...

    hibernate4.3.11所需jar包

    - **Jakarta Commons Logging**: 提供日志记录服务,允许Hibernate使用各种日志框架(如log4j, java.util.logging)。 - **JTA (Java Transaction API)**: 支持分布式事务处理,如JBOSS Transactions或Atomikos等...

    groovy快速入门指南(中文)

    list = [1, 2, 'hello', new java.util.Date()] assert list.size() == 4 assert list.get(2) == 'hello' ``` - **注意**:在 Groovy 中,所有的数字都会被自动转换为对象。 **2. Map** - **定义与访问** - ...

    hibernate-3.13.zip

    - Commons Logging:提供日志服务,允许开发者选择自己喜欢的日志框架,如 Log4j 或 java.util.logging。 - DOM4J:一个解析和操作 XML 的库,Hibernate 使用它来读取和生成 HBM(Hibernate 映射文件)。 - JTA...

    util-linux-ng-2.17源码(含fdisk)

    Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] util-linux-ng-2.17.2/disk-utils/...

    hibernate开发流程 入门

    import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class UserTest { public static ...

    hibernate所有用到的jar包

    10. **slf4j-api.jar**和相应的实现库(如slf4j-log4j12.jar):Simple Logging Facade for Java,提供一个简单的接口来调用各种日志框架,如log4j、java.util.logging等。 11. **mysql-connector-java.jar**(或...

    ws-commons-util-1.0.2.zip_ws-comm-util.jar

    【标题】"ws-commons-util-1.0.2.zip_ws-comm-util.jar" 提供的是一个名为 ws-commons-util 的库的版本1.0.2,这个库经过压缩打包成ZIP格式,其中包含了 ws-comm-util.jar 文件。这个JAR文件是Java应用程序中常见的...

    Utiljs一些很实用的javaScript函数封装集合

    Util.js 是一个非常实用的JavaScript库,它封装了一系列常见的功能函数,旨在简化开发过程,提高代码的可复用性和效率。这个库涵盖了多种类别,包括处理数组、浏览器特性、日期操作、函数辅助、数学计算、媒体操作、...

    AHibernate1.1

    早期版本AHibernate1.0下载地址:http://download.csdn.net/detail/lk_blog/4222048 本版主要修改的内容: 1.修改bug,实体类的属性定义为int时自动生成Id正常,定义为Integer类型后不能自动生成Id. 2.实现功能:自动...

    hibernate注册功能的实现

    为了存储创建时间,可以添加一个`java.util.Date`类型的成员变量,例如`creationDate`。 2. 数据库表结构:根据实体类设计数据库表,确保与实体类属性相对应。对于时间字段,数据库表中应有一个日期或时间类型列,...

Global site tag (gtag.js) - Google Analytics