com.eryansky.common.orm.mybatis.MyBatisSuportDao.java Source code

Java tutorial

Introduction

Here is the source code for com.eryansky.common.orm.mybatis.MyBatisSuportDao.java

Source

/**
 *  Copyright (c) 2012-2014 http://www.eryansky.com
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 */
package com.eryansky.common.orm.mybatis;

import java.io.Serializable;
import java.util.List;
import org.apache.ibatis.session.RowBounds;
import org.mybatis.spring.support.SqlSessionDaoSupport;

import com.eryansky.common.orm.Page;

/**
 * MyBatisDao.
 * 
 * @author &Eryan eryanwcp@gmail.com
 * @date 2012-7-28 ?7:38:46
 */
public class MyBatisSuportDao extends SqlSessionDaoSupport {
    /**
     * ?
     * 
     * @param key
     * @param object
     *            
     * @date 2012-7-28 ?7:38:53
     */
    public void save(String key, Object object) {
        getSqlSession().insert(key, object);
    }

    /**
     * 
     * 
     * @param key
     * @param id
     *            id
     * @date 2012-7-28 ?7:39:26
     */
    public void delete(String key, Serializable id) {
        getSqlSession().delete(key, id);
    }

    /**
     * 
     * 
     * @param key
     * @param object
     *            
     * @date 2012-7-28 ?7:39:46
     */
    public void delete(String key, Object object) {
        getSqlSession().delete(key, object);
    }

    /**
     * ?
     * 
     * @param key
     * @param params
     *            ?
     * @return 
     * @date 2012-7-28 ?7:40:08
     */
    @SuppressWarnings("unchecked")
    public <T> T get(String key, Object params) {
        return (T) getSqlSession().selectOne(key, params);
    }

    /**
     * ? ??
     * 
     * @param key
     * @return
     * @date 2012-7-28 ?7:41:01
     */
    public <T> List<T> getList(String key) {
        return getSqlSession().selectList(key);
    }

    /**
     * ? ???
     * 
     * @param key
     * @param params
     *            ?
     * @return
     * @date 2012-7-28 ?7:43:02
     */
    public <T> List<T> getList(String key, Object params) {
        return getSqlSession().selectList(key, params);
    }

    /**
     * ?
     * 
     * @param key
     * @param offset
     *            ???
     * @param limit
     *            ??
     * @param params
     *            ? (Map<String,Object>)
     * @return List<T>
     * @date 2012-7-29 ?1:35:32
     */
    public <T> List<T> getList(String key, int offset, int limit, Object params) {
        return getSqlSession().selectList(key, params, new RowBounds(offset, limit));
    }

    /**
     * ?
     * 
     * @param key
     * @param page
     * @param params
     *            ? (Map<String,Object>)
     * @return Page<T>
     * @date 2012-7-29 ?3:50:26
     */
    public <T> Page<T> getPage(String key, Page<T> page, Object params) {

        int offset = Page.countOffset(page.getPageSize(), page.getPageNo());

        List<T> list = getList(key, params);
        if (!list.isEmpty() && list.size() > 0) {
            page.setTotalCount(list.size());
        }

        page.setTotalPage(Page.countTotalPage(page.getPageSize(), page.getTotalCount()));

        List<T> result = getSqlSession().selectList(key, params, new RowBounds(offset, page.getPageSize()));
        page.setResult(result);

        return page;
    }

}