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

cn.schoolwow.quickdao.domain.database.dml.DatabaseManipulation Maven / Gradle / Ivy

package cn.schoolwow.quickdao.domain.database.dml;

import cn.schoolwow.quickdao.module.database.dql.condition.domain.SFunction;
import cn.schoolwow.quickdao.module.database.parent.kit.DatabaseDAO;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 负责数据增删改查操作
 */
public interface DatabaseManipulation extends DatabaseDAO {
    /**
     * 是否返回自增id
     */
    DatabaseManipulation returnGeneratedKeys(boolean returnGeneratedKeys);

    /**
     * 是否使用批处理
     */
    DatabaseManipulation batch(boolean batch);

    /**
     * 每次最大更新个数
     */
    DatabaseManipulation perBatchCount(int perBatchCount);

    /**
     * 是否只插入/更新部分字段
     */
    DatabaseManipulation partColumn(String... fieldNames);

    /**
     * 排除插入/更新部分字段
     */
    DatabaseManipulation excludeColumn(String... fieldNames);

    /**
     * 指定唯一字段
     */
    DatabaseManipulation uniqueFieldNames(String... uniqueFieldNames);

    /**
     * 指定更新类型
     */
    DatabaseManipulation updateType(UpdateType updateType);

    /**
     * 指定字段检查策略
     */
    DatabaseManipulation checkStrategy(CheckStrategy checkStrategy);

    /**
     * 获取不符合约束的实例
     * */
    Map getReasonInstanceMap(String tableName, JSONArray instances);

    /**
     * 插入JSON对象
     *
     * @param tableName 表名
     * @param instance  记录
     */
    int insert(String tableName, JSONObject instance);

    /**
     * 插入JSON列表
     *
     * @param tableName 表名
     * @param instances     数据列表
     */
    int insert(String tableName, JSONArray instances);

    /**
     * 比对数据库存在的记录
     *
     * @param tableName 表名
     * @param currentJSONArray 当前存在记录
     */
    CompareJSONArrayResult compareJSONArray(String tableName, JSONArray currentJSONArray);

    /**
     * 比对数据库存在的记录
     *
     * @param tableName 表名
     * @param currentJSONArray 当前存在记录
     * @param totalJSONArray 所有记录
     */
    CompareJSONArrayResult compareJSONArray(String tableName, JSONArray currentJSONArray, JSONArray totalJSONArray);

    /**
     * 忽略插入JSONObject
     * 不存在则插入,存在则忽略
     *
     * @param tableName 表名
     * @param instance  记录
     */
    int insertIgnore(String tableName, JSONObject instance);

    /**
     * 忽略插入JSONArray
     * 不存在则插入,存在则忽略
     *
     * @param tableName 表名
     * @param instances 记录
     */
    int insertIgnore(String tableName, JSONArray instances);

    /**
     * 更新实例
     *
     * @param tableName 表名
     * @param instance 记录
     */
    int update(String tableName, JSONObject instance);

    /**
     * 更新实例
     *
     * @param tableName 表名
     * @param instances 记录
     */
    int update(String tableName, JSONArray instances);

    /**
     * 

保存对象

*

调用此方法前请先调用uniqueFieldNames方法指定唯一字段

* * @param instance 待保存对象 */ int save(String tableName, JSONObject instance); /** *

保存对象

*

调用此方法前请先调用uniqueFieldNames方法指定唯一字段

* * @param instances 待保存数组 */ int save(String tableName, JSONArray instances); /** * 删除实例 * * @param tableName 表名 * @param instance 记录 */ int delete(String tableName, JSONObject instance); /** * 删除实例 * * @param tableName 表名 * @param instances 记录 */ int delete(String tableName, JSONArray instances); /** * 获取不符合约束的实例 * */ Map getReasonInstanceMap(Object[] instances); /** * 插入对象 * * @param instance 待保存对象 */ int insert(Object instance); /** * 插入对象数组 * * @param instances 待保存对象数组 */ int insert(Object[] instances); /** * 插入对象 * * @param instanceCollection 插入对象集合 */ int insert(Collection instanceCollection); /** * 比对数据库存在的记录 * * @param instances 实例列表 */ CompareInstanceListResult compareInstanceList(Collection instances); /** * 比对数据库存在的记录 * * @param currentInstances 当前实例列表 * @param totalInstances 原始实例列表 */ CompareInstanceListResult compareInstanceList(Collection currentInstances, Collection totalInstances); /** * 不存在则插入,存在则忽略 * * @param instance 插入对象 */ int insertIgnore(Object instance); /** * 不存在则插入,存在则忽略 * * @param instances 插入对象数组 */ int insertIgnore(Object[] instances); /** * 不存在则插入,存在则忽略 * * @param instanceCollection 待保存对象集合 */ int insertIgnore(Collection instanceCollection); /** * 更新对象 * 若对象有唯一性约束,则根据唯一性约束更新,否则根据id更新 * * @param instance 待更新对象 */ int update(Object instance); /** * 更新对象 * 若对象有唯一性约束,则根据唯一性约束更新,否则根据id更新 * * @param instances 待更新对象数组 */ int update(Object[] instances); /** * 更新对象 * 若对象有唯一性约束,则根据唯一性约束更新,否则根据id更新 * * @param instanceCollection 待更新对象集合 */ int update(Collection instanceCollection); /** *

保存对象

*
    *
  • 若对象id不存在,则直接插入该对象
  • *
  • 若对象id存在,则判断该对象是否有唯一性约束,若有则根据唯一性约束更新
  • *
  • 若该对象无唯一性约束,则根据id更新
  • *
* * @param instance 待保存对象 */ int save(Object instance); /** *

保存对象数组

*
    *
  • 若对象id不存在,则直接插入该对象
  • *
  • 若对象id存在,则判断该对象是否有唯一性约束,若有则根据唯一性约束更新
  • *
  • 若该对象无唯一性约束,则根据id更新
  • *
* * @param instances 待保存对象数组 */ int save(Object[] instances); /** *

保存对象数组

*
    *
  • 若对象id不存在,则直接插入该对象
  • *
  • 若对象id存在,则判断该对象是否有唯一性约束,若有则根据唯一性约束更新
  • *
  • 若该对象无唯一性约束,则根据id更新
  • *
* * @param instanceCollection 待保存对象集合 */ int save(Collection instanceCollection); /** * 删除对象 *

首先根据实体类唯一性约束删除,若无唯一性约束则根据id删除

* * @param instance 待删除对象 */ int delete(Object instance); /** * 删除对象数组 *

首先根据实体类唯一性约束删除,若无唯一性约束则根据id删除

* * @param instances 待删除对象数组 */ int delete(Object[] instances); /** * 删除对象 *

首先根据实体类唯一性约束删除,若无唯一性约束则根据id删除

* * @param instanceCollection 删除对象集合 */ int delete(Collection instanceCollection); /** * 根据id删除记录 * * @param id 待删除记录id */ int delete(Class clazz, long id); /** * 根据id删除记录 * * @param id 待删除记录id */ int delete(Class clazz, String id); /** * 根据指定字段值删除对象 * * @param clazz 实体类对象,对应数据库中的一张表 * @param field 指定字段名 * @param value 指定字段值 */ int delete(Class clazz, String field, Object value); /** * 根据指定字段值删除对象 * * @param tableName 数据库表名 * @param columnName 列名 * @param value 字段值 */ int delete(String tableName, String columnName, Object value); /** * 根据指定字段值删除对象 * * @param clazz 实体类对象,对应数据库中的一张表 * @param field 指定字段名 * @param value 指定字段值 */ int delete(Class clazz, SFunction field, Object value); /** * 删除表中所有数据 * * @param clazz 实体类 */ int clear(Class clazz); /** * 删除表中所有数据 * * @param tableName 表名 */ int clear(String tableName); /** * 清空表 * * @param clazz 实体类 */ int truncate(Class clazz); /** * 清空表 * * @param tableName 表名 */ int truncate(String tableName); /** * 执行原生更新语句 * * @param updateSQL SQL更新语句 * @param parameters 参数 */ int rawUpdate(String updateSQL, Object... parameters); /** * 批处理执行原生更新语句 * * @param updateSQL SQL更新语句 * @param parameterBatchList 批处理参数列表 */ int rawUpdateBatch(String updateSQL, List> parameterBatchList); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy