BaseDao设计

做过几个系统,但是仔细分析发现他们有一个共同的特点,就是定义一个基础的模板变量,根据使用的ORM框架不同饮用不同的模板变量,这里我举例ibatis的一种基础代码设计并给出了注释,感觉很优秀,记得总结记录

public abstract class BaseDaoImpl {
    /**
     * 引用ibatis的模板对象
     */
    @Autowired
    private SqlMapClientTemplate sqlMapClient;
    
    //setter
    public void setSqlMapClient(SqlMapClientTemplate sqlMapClient) {
        this.sqlMapClient = sqlMapClient;
    }
    //getter
    public SqlMapClientTemplate getSqlMapClient() {
        return sqlMapClient;
    }

    /**
     * 定义一个抽象的方法(有抽象方法的类必须是抽象类)
     * 改方法返回一个字符串类型
     * 改方法主要是做查询域用的,不管是ibatis或者是mybatis都有一个namespace的域空间,
     * 这里返回的值就是跟他们对于的XML忠namespace的定义一直,由实现类去实现
     * @return
     */
    public abstract String getNamespace();

    /**
     * 通用分页函数
     *
     * @param countNameSpace
     * @param pageNameSpace
     * @param paginator
     * @return
     */
    public Paginator paginateObject(String countNameSpace, String pageNameSpace, Paginator paginator) {
        Integer count = Integer.valueOf(sqlMapClient.queryForObject(getNamespace() + "." + countNameSpace, paginator).toString());
        List result = sqlMapClient.queryForList(getNamespace() + "." + pageNameSpace, paginator);
        paginator.setItems(count);
        paginator.setResults(result);
        return paginator;
    }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值