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

org.tinygroup.jdbctemplatedslsession.template.DslTemplate Maven / Gradle / Ivy

package org.tinygroup.jdbctemplatedslsession.template;

import org.tinygroup.jdbctemplatedslsession.callback.*;
import org.tinygroup.tinysqldsl.DslSession;
import org.tinygroup.tinysqldsl.Pager;

import java.io.Serializable;
import java.util.List;

/**
 * dsl操作模板类
 * @author renhui
 *
 */
public interface DslTemplate {

	DslSession getDslSession();

	void setDslSession(DslSession dslSession);
    /**
     * 插入记录,主键值需要自己传人
     * @param t
     * @param callback
     * @return
     */
	 T insert(T t, InsertGenerateCallback callback);
	
	/**
     * 插入记录操作,主键值可以自动生成
     * @param t
     * @param callback
     * @return
     */
	 T insertAndReturnKey(T t,
							 InsertGenerateCallback callback);
	
    /**
     * 插入记录操作,主键值可以自动生成
     * @param autoGeneratedKeys
     * @param t
     * @param callback
     * @return
     */
	 T insertAndReturnKey(boolean autoGeneratedKeys, T t,
							 InsertGenerateCallback callback);
	
	/**
	 * 更新操作,默认会忽略值为null的字段
	 * @param t
	 * @param callback
	 * @return
	 */
	 int update(T t, UpdateGenerateCallback callback);

	/**
	 * 更新操作
	 * @param t
	 * @param callback
	 * @param ignore true:忽略更新值为null的字段
	 * @return
	 */
	 int update(T t, UpdateGenerateCallback callback, boolean ignore);

	/**
	 * 根据主键删除记录
	 * @param pk
	 * @param callback
	 * @return
	 */
	int deleteByKey(Serializable pk, DeleteGenerateCallback callback);

	/**
	 * 根据主键查询记录
	 * @param pk
	 * @param callback
	 * @return
	 */
	 T getByKey(Serializable pk, Class requiredType, SelectGenerateCallback callback);

	/**
	 * 根据主键数组删除记录
	 * @param callback
	 * @param pks
	 * @return
	 */
	int deleteByKeys(DeleteGenerateCallback callback,
					 Serializable... pks);
    /**
     * 查询操作
     * @param t
     * @param callback
     * @return
     */
	 List query(T t, SelectGenerateCallback callback);
    /**
     * 分页查询
     * @param start
     * @param limit
     * @param t
     * @param callback
     * @return
     */
	 Pager queryPager(int start, int limit, T t, boolean isCursor,
							SelectGenerateCallback callback);

	/**
	 * 批量新增,主键值需要设置到参数对象中
	 * @param objects
	 * @param callback
	 * @return
	 */
	 int[] batchInsert(List objects, NoParamInsertGenerateCallback callback);

	/**
	 * 批量新增,主键值由框架生成
	 * @param autoGeneratedKeys
	 * @param objects
	 * @param callback
	 * @return
	 */
	 int[] batchInsert(boolean autoGeneratedKeys, List objects,
						  NoParamInsertGenerateCallback callback);
    /**
     * 批量更改
	 * @param objects
	 * @param callback
     * @return
     */
	 int[] batchUpdate(List objects, NoParamUpdateGenerateCallback callback);

	/**
	 * 批量删除
	 * @param objects
	 * @param callback
	 * @return
	 */
	 int[] batchDelete(List objects, NoParamDeleteGenerateCallback callback);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy