DAO层框架介绍:gavin

源码:https://gitee.com/l311576/gavin

特性:

1.支持分表分库

2.支持读写分离

3.加载一次可以系统在任意地方调用事务

 

简单的使用方式:

1.配置数据库连接信息,可以配置n个,读写分开配置

   
            
            
            
                1
                5
            

        

    

    
    
        
            
            
                1
                5
            

        

    
    

 

2.配置分表分库规则,可以配置多个表

   





3.配置事务插件路径,可以配置多个,适用于分模块开发互不影响

   
    

 

4.编写事务逻辑,如下:查询分页  传值(pageNumber,pageSize)

   
        
            select * from {TI:tbTemplatesRecord, strUserName} limit {startIndex},{pageSize}
        

        
        
        
            
                
            

        

        
            select count(*) from  {TI:tbTemplatesRecord, strUserName}
        

        
            
        
        
        
            
            
        

    

    注意:
        一个标签代表一个事务,事务必须在同一个SQLTrans标签中完成
        一个里面写多条sql语句进行数据库操作,也可以返回多个结果值

5.service层调用方式:

   Request query=Request.build("TemplatesService", "queryPage").page(0, 10).set("type", username).set("strUserName", username);
        Page datas=DBTrans.page(query,Datas.class);
        if(datas==null){//查询失败
            
        }

从上面的步骤可以看出一个完整的事务,需要步骤4和步骤5

 

6.通过事务标签属性实现读写分离:

    写:    
    读:    

7.通过表达式实现分表分库,目前有两种方式

    ai:按指定字段数值顺序分表分库
    TI:按指定字段哈希值分表分库
    select * from {TI:tbTemplatesRecord, strUserName} limit {startIndex},{pageSize}

 

8.在项目任意地方可调用事务,通过DBTrans操作数据库的方式主要有4种,分别为:
 

     插件启动方式:
    DBTrans.getInstance().config("templates/config.properties").start();    

    8.1.查询一条数据并使用Respones对象返回
        DBTrans.beanResult(Request,Class);
    8.2.查询分页信息(需要返回:totalCount和list),如果查询失败或异常则返回null
        DBTrans.page(Request,Class);
    8.3.查询list集合(需要返回:list),如果查询失败或异常则返回null
        DBTrans.list(Request,Class);
    8.4.查询一个对象,如果查询失败或异常则直接报错RuntimeException()
        DBTrans.bean(Request,Class);
    8.5.执行数据库事务(这是一个万能方法,可以执行上面所有的操作并且可以有多个返回值)
        DBTrans.execute(Request);    

<<终>>

 

 

 

你可能感兴趣的:(java)