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

sf.jooq.dao.DBJooq Maven / Gradle / Ivy

The newest version!
package sf.jooq.dao;

import org.jooq.Condition;
import org.jooq.Delete;
import org.jooq.Insert;
import org.jooq.Record;
import org.jooq.SQLDialect;
import org.jooq.Select;
import org.jooq.Table;
import org.jooq.Update;
import sf.common.wrapper.Page;
import sf.core.DBObject;

import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.stream.Stream;

public interface DBJooq {

    /**
     * jooq判断是否存在
     * @param sqlDialect 可以传null,主要是用于商业版需要传入.
     * @param condition
     * @param clz
     * @param 
     * @return
     */
     boolean jooqExists(SQLDialect sqlDialect, List condition, Class clz);

    /**
     * jooq 查询单一对象
     * @param select      查询语句
     * @param returnClass 返回类型
     * @param 
     * @return
     */
     T jooqSelectOne(Select select, Class returnClass);

    /**
     * jooq 查询list
     * @param select
     * @param returnClass
     * @param 
     * @return
     */
     List jooqSelectList(Select select, Class returnClass);

    /**
     * jooq 查询分页
     * @param countSelect 查询总数的select
     * @param pageSelect  查询列表的select,必须包含分页参数.
     * @param returnClass 返回值
     * @param          返回值根据select的查询条件变化,可能为bean,单一值,或Map
     * @return
     * @
     */
     Page jooqSelectPage(Select countSelect, Select pageSelect, Class returnClass);

    /**
     * jooq 查询按流返回
     * @param ormIt
     * @param beanClass
     * @param select
     * @param 
     */
     void jooqSelectIterator(Consumer> ormIt, Class beanClass, Select select);

    /**
     * jooq 查询按流返回
     * @param ormStream
     * @param beanClass
     * @param select
     * @param 
     */
     void jooqSelectStream(Consumer> ormStream, Class beanClass, Select select);

    /**
     * jooq 插入
     * @param insert
     * @return
     */
     int jooqInsert(Insert insert);

    /**
     * 带返回值的插入
     * @param insert
     * @param table     使用的表
     * @param keyValues
     * @return
     */
     int jooqInsert(Insert insert, Table table, Map keyValues);

    /**
     * jooq 更新
     * @param update
     * @return
     */
     int jooqUpdate(Update update);

    /**
     * jooq 删除
     * @param delete
     * @return
     */
     int jooqDelect(Delete delete);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy