All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yuweix.tripod.dao.mybatis.AbstractDao Maven / Gradle / Ivy

package com.yuweix.tripod.dao.mybatis;


import com.yuweix.tripod.dao.mybatis.order.OrderBy;
import com.yuweix.tripod.dao.mybatis.where.Criteria;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;


/**
 * @author yuwei
 */
public abstract class AbstractDao implements Dao {
	protected Class clz;


	@SuppressWarnings("unchecked")
	public AbstractDao() {
		this.clz = null;
		Type t = getClass().getGenericSuperclass();
		if (t instanceof ParameterizedType) {
			this.clz = (Class) ((ParameterizedType) t).getActualTypeArguments()[0];
		}
	}
	
	protected abstract BaseMapper getMapper();

	@Override
	public T get(PK id) {
		return getMapper().selectOneById(id, clz);
	}

	@Override
	public int findCount(Criteria criteria) {
		return getMapper().findCount(criteria, clz);
	}

	@Override
	public List findList(Criteria criteria, OrderBy orderBy) {
		return getMapper().findList(criteria, orderBy, clz);
	}

	@Override
	public List findPageList(Criteria criteria, int pageNo, int pageSize, OrderBy orderBy) {
		return getMapper().findPageList(criteria, pageNo, pageSize, orderBy, clz);
	}

	@Override
	public int insert(T t) {
		return getMapper().insert(t);
	}

	@Override
	public int insertSelective(T t) {
		return getMapper().insertSelective(t);
	}

	@Override
	public int updateByPrimaryKey(T t) {
		return getMapper().updateByPrimaryKey(t);
	}

	@Override
	public int updateByPrimaryKeyExcludeVersion(T t) {
		return getMapper().updateByPrimaryKeyExcludeVersion(t);
	}

	@Override
	public int updateByPrimaryKeySelective(T t) {
		return getMapper().updateByPrimaryKeySelective(t);
	}

	@Override
	public int updateByPrimaryKeySelectiveExcludeVersion(T t) {
		return getMapper().updateByPrimaryKeySelectiveExcludeVersion(t);
	}

	@Override
	public int delete(T t) {
		return getMapper().delete(t);
	}

	@Override
	public int deleteByKey(PK id) {
		return getMapper().deleteByKey(id, clz);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy