package org.test4j.module.database.dbop;
import org.test4j.hamcrest.iassert.object.intf.ICollectionAssert;
import org.test4j.hamcrest.iassert.object.intf.INumberAssert;
import org.test4j.hamcrest.iassert.object.intf.IObjectAssert;
import org.test4j.module.ICore.DataMap;
import org.test4j.tools.datagen.DataSet;
@SuppressWarnings("rawtypes")
public interface ITableOp {
/**
* 清空数据表
*
* @return
*/
ITableOp clean();
/**
* 根据json插入数据
*
* @param json
* @param more
* @return
*/
ITableOp insert(String json, String... more);
/**
* 批量插入count条数据
*
* @param count 需要插入的数据的数量
* @param data 需要插入的数据 Map,key:字段,value:n条数据的数组集合和策略
* @return
*/
ITableOp insert(int count, DataMap data);
/**
* 根据Map的key(表字段)插入数据
*
* @param data
* @param datas
* @return
*/
ITableOp insert(DataMap data, DataMap... datas);
/**
* 插入数据集
*
* @param dataset
* @return
*/
ITableOp insert(DataSet dataset);
/**
* 提交数据
*/
void commit();
/**
* 回滚数据
*/
void rollback();
/**
* 查询表数据,做数据断言
*
* @return
*/
ICollectionAssert query();
/**
* 根据条件查询数据,并返回数据断言器
*
* @param where
* @return
*/
ICollectionAssert queryWhere(String where);
/**
* 根据条件查询数据,并返回数据断言器
*
* @param where
* @return
*/
ICollectionAssert queryWhere(DataMap where);
/**
* 查询表中所有的数据,并且每条数据填充到PoJo中<br>
* 返回 List<Obejct> 的断言器
*
* @param table
* @param pojo
* @return
*/
ICollectionAssert queryList(Class pojo);
/**
* 查询单条数据,转换为PoJo对象。并且返回对象断言器
*
* @param pojo
* @return
*/
IObjectAssert queryAs(Class pojo);
/**
* 查询表count(*)的值,并且返回断言器
*
* @return
*/
INumberAssert count();
}