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

com.centit.support.database.jsonmaptable.JsonObjectDao Maven / Gradle / Ivy

Go to download

数据库操作通用方法和函数,从以前的util包中分离出来,并且整合了部分sys-module中的函数

There is a newer version: 5.3.2302
Show newest version
package com.centit.support.database.jsonmaptable;

import java.io.IOException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.centit.support.database.metadata.TableInfo;

public interface JsonObjectDao {
	
	TableInfo getTableInfo();	
	/**
	 * 单主键表
	 * @param keyValue keyValue
	 * @return JSONObject
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	JSONObject getObjectById(final Object keyValue) throws SQLException, IOException;
	/**
	 * 联合主键表
	 * @param keyValues keyValues
	 * @return JSONObject
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	JSONObject getObjectById(final Map keyValues) throws SQLException, IOException;
	
	/**
	 * 根据属性查询对象
	 * @param properties properties
	 * @return JSONObject
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	JSONObject getObjectByProperties(final Map properties) throws SQLException, IOException;
	
	/**
	 * 
	 * @param properties properties
	 * @return JSONArray
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	JSONArray listObjectsByProperties(final Map properties) throws SQLException, IOException;
	
	/**
	 * 根据属性进行查询
	 * @param properties properties
	 * @param startPos startPos
	 * @param maxSize maxSize
	 * @return JSONArray
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	JSONArray listObjectsByProperties(final Map properties,
			final int startPos,final int maxSize) throws SQLException, IOException;
	/**
	 * 根据属性进行并获取总数
	 * @param properties properties
	 * @return Long fetchObjectsCount
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	Long fetchObjectsCount(final Map properties)
			throws SQLException, IOException;
	/**
	 * 获取Sequence的值,不支持的Sequence数据库可以用一个表或者存储过程来模拟
	 * @param sequenceName sequenceName
	 * @return Long
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	Long getSequenceNextValue(final String sequenceName) throws SQLException,IOException;
	/*
	 * 保存
	 * @param object object
	 */
	int saveNewObject(final Map object) throws SQLException;
	
	/**
	 * 更改部分属性
	 * @param fields 更改部分属性 属性名 集合,应为有的Map 不允许 值为null,这样这些属性 用map就无法修改为 null
	 * @param object object
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int updateObject(final Collection fields,  final Map object) throws SQLException;
	
	/**
	 * 更改部分属性
	 * @param object object
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int updateObject(final Map object) throws SQLException;
	
	/**
	 *  更改部分属性
	 * @param fields 更改部分属性 属性名 集合,应为有的Map 不允许 值为null,这样这些属性 用map就无法修改为 null
	 * @param object object
	 * @return Long
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	int mergeObject(final Collection fields, 
			final Map object) throws SQLException, IOException;
	
	/**
	 * 合并
	 * @param object object
	 * @return Long
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	int mergeObject(final Map object) throws SQLException, IOException;
	
	/**
	 * 根据条件批量更新 对象
	 * @param fieldValues properties
	 * @param properties properties
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int updateObjectsByProperties(final Map fieldValues,
			final Map properties) throws SQLException;
	
	/**
	 * 根据条件批量更新 对象
	 * @param fields 更改部分属性 属性名 集合,应为有的Map 不允许 值为null,这样这些属性 用map就无法修改为 null
	 * @param fieldValues fieldValues
	 * @param properties properties
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int updateObjectsByProperties(final Collection fields, 
			final Map fieldValues,
			final Map properties) throws SQLException;
	/**
	 * 删除,单主键
	 * @param keyValue keyValue
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int deleteObjectById(final Object keyValue) throws SQLException;
	
	/**
	 * 删除,联合主键
	 * @param keyValue keyValue
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int deleteObjectById(final Map keyValue) throws SQLException;
	/**
	 * 根据属性 批量删除
	 * @param properties properties
	 * @return Long
	 * @throws SQLException SQLException
	 */
	int deleteObjectsByProperties(final Map properties)
			throws SQLException;
	//--- 作为子表批量操作
	/**
	 * 批量添加多条记录
	 * @param objects JSONArray
	 * @return int
	 * @throws SQLException SQLException
	 */
	int insertObjectsAsTabulation(final JSONArray objects) throws SQLException;
	
	/**
	 * 批量删除
	 * @param objects JSONArray
	 * @return int
	 * @throws SQLException SQLException
	 */
	int deleteObjects(final JSONArray objects) throws SQLException;
	
	/**
	 * 根据外键批量删除,单外键
	 * @param propertyName String
	 * @param propertyValue Object
	 * @return int
	 * @throws SQLException SQLException
	 */
	int deleteObjectsAsTabulation(final String propertyName,
            final Object propertyValue) throws SQLException;
	/**
	 * 根据外键批量删除,符合外键	 
	 * @param properties Object
	 * @return int
	 * @throws SQLException SQLException
	 */
	int deleteObjectsAsTabulation(final Map properties) throws SQLException;
	
	
	/**
	 * 用新的列表覆盖数据库中的列表
	 * @param dbObjects JSONArray
	 * @param newObjects JSONArray
	 * @return int
	 * @throws SQLException SQLException
	 */
	int replaceObjectsAsTabulation(final JSONArray newObjects,final JSONArray dbObjects) throws SQLException;
	/**
	 * 用新的列表覆盖数据库中的内容,通过单外键查询列表
	 * @param newObjects JSONArray
	 * @param propertyName String
	 * @param propertyValue  Object
	 * @return int
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	int replaceObjectsAsTabulation(final JSONArray newObjects,
    		final String propertyName,
            final Object propertyValue) throws SQLException, IOException;
	/**
	 * 用新的列表覆盖数据库中的内容,通过复合外键查询列表
	 * @param newObjects newObjects
	 * @param properties properties
	 * @return int
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	int replaceObjectsAsTabulation(final JSONArray newObjects,
			final Map properties) throws SQLException, IOException;
	
	///////////////////////////////////////////////////////////////////////////////////////
	/**
	 * 查询带参数的SQL语句
	 * @param sSql String
	 * @param values Object []
	 * @return List Object []
	 * @throws SQLException SQLException
	 * @throws IOException IOException
	 */
	List findObjectsBySql(final String sSql,final Object[] values)
			throws SQLException, IOException;
	
	List findObjectsBySql(final String sSql,final Object[] values,
			final int pageNo, final int pageSize)
			throws SQLException, IOException;
	
	List findObjectsByNamedSql(
			final String sSql, final Map values)
			throws SQLException, IOException;
	
	List findObjectsByNamedSql(
			final String sSql, final Map values,
			final int pageNo, final int pageSize)
			throws SQLException, IOException;
	
	JSONArray findObjectsAsJSON(final String sSql,final Object[] values,
			final String[] fieldnames)
			throws SQLException, IOException;
	
	JSONArray findObjectsAsJSON(final String sSql,final Object[] values,
			final String[] fieldnames,final int pageNo, final int pageSize)
			throws SQLException, IOException;
	
	JSONArray findObjectsByNamedSqlAsJSON(
			final String sSql, final Map values,final String[] fieldnames)
			throws SQLException, IOException;
	
	JSONArray findObjectsByNamedSqlAsJSON(
			final String sSql, final Map values,
			final String[] fieldnames,
			final int pageNo, final int pageSize)
			throws SQLException, IOException;
	
	boolean doExecuteSql(final String sSql) throws SQLException;
	
	int doExecuteSql(final String sSql,final Object[] values) throws SQLException;
	
	int doExecuteNamedSql(final String sSql, final Map values)
			throws SQLException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy