Groovy 数据库应用开发实践-SQL对象托管和封装

本文介绍了如何使用Groovy的单例模式实现SQL对象的托管,避免重复创建导致的数据库锁定问题。示例代码展示了针对Hsqldb和SQL Server数据库的连接管理,通过GroovySqlHsqlDbUtil和DefaultGroovySqlDbUtil类进行统一的数据库访问。
摘要由CSDN通过智能技术生成

author:wjw


Groovy SQL 重复创建时,将导致本地嵌入式数据库锁定,如Hsqldb,sqlite等,为保存系统中只存一份SQL对象,通过一个单例模式的工具类实现对SQL的托管,并统一归数据库访问层调用.

示例代码:


class GroovySqlHsqlDbUtil {

        def sql;
        def static instance
        
    //单例模式
        static {
            instance=new GroovySqlHsqlDbUtil()
        
        }
        
    static def getInstance(){
         if(instance==null){
               instance=new GroovySqlHsqlDbUtil()
         }
         return   instance
     }   
     
    private GroovySqlHsqlDbUtil(){
         getGroovySql()
    }
    
    //获取Groovy 数据库服务对象 Sql    
   public Sql  getGroovySql(){
        
        def dbc= new GroovySqlDataSourceConfig();
        //jdbc:hsqldb:mem:testDB
        //
         def db = [url:'jdbc:hsqldb:file:E:/WjWork/MIS/med_cmp_for_saler_prj/db/plugs_gv_web_db', user:'SA', password:'SA', driver:'org.hsqldb.jdbc.JDBCDriver']
        if(this.sql==null){
               // def sql=Sql.newInstance("jdbc:jtds:sqlserver://localhost:4687/shield","sa","sa","net.sourceforge.jtds.jdbc.Driver");
             
            //sqlserver
         //   def sql=Sql.newInstance("jdbc:jtds:sqlserver://${dbc.getHost()}:${dbc.getPort()}/${dbc.getDbName()}","${dbc.getUser()}","${dbc.getPassword()}","net.sourceforge.jtds.jdbc.Driver");
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值