接口 IDataAccess
public interface IDataAccess
提供访问Forguncy表的方法
- 作者:
- CharlesSui
-
方法概要
修饰符和类型方法说明void
addTableData
(String tableName, Map<String, Object> newValues) 将数据添加到指定的表void
beginTransaction
(String connectionStr) 用连接字符串开启事务void
beginTransaction
(String connectionStr, IsolationLevel isolationLevel) 用连接字符串开启事务并指定隔离级别void
commitTransaction
(String connectionStr) 用连接字符串提交事务void
deleteTableData
(String tableName, ColumnValuePair primaryKey) 从表中删除与指定值匹配的记录执行sql执行 sqlgenerateSqlCondition
(Map<String, Object> queryInfos, String tableName) 生成SQL条件getConnectionInfo
(String tableName) 获取数据表连接信息,数据表连接信息是解析过的连接字符串getConnectionString
(String tableName) 根据表名获取连接字符串getConnectionStringByID
(String connectionStringID) 根据链接字符串id获取连接字符串getTableData
(String odataPath) 通过指定OData路径获取一条记录。getTableData
(String tableName, ColumnValuePair primaryKey) 从表中获取与指定值匹配的记录void
modifyTablesData
(Map<String, ModifyData> modifyData) 根据多个已编辑的数据更新(添加/编辑/删除)数据。void
rollbackTransaction
(String connectionStr) 用连接字符串回滚事务void
updateTableData
(String tableName, ColumnValuePair primaryKey, Map<String, Object> updateValues) 更新与指定值匹配的记录
-
方法详细资料
-
addTableData
将数据添加到指定的表- 参数:
tableName
- 要向其添加数据的表名newValues
- 作为字段名称和值的集合创建的其他数据示例代码表示获取给表1中添加数据:
HashMap<String, Object> data = new HashMap<String, Object>(); data.put("文本", "c"); data.put("整数", 3); this.getDataAccess().addTableData("表1", data);
-
getTableData
从表中获取与指定值匹配的记录- 参数:
tableName
- 要获取的表名primaryKey
- 字段名称/值对(使用唯一字段)以指定找到的集合- 返回:
- 数据记录
示例代码表示获取表1中ID为2的数据:
HashMap<String, Object> data = this.getDataAccess().getTableData("表1", new ColumnValuePair("ID", 2));
-
getTableData
通过指定OData路径获取一条记录。 在资源路径之后指定OData路径,但不包括根URI。- 参数:
odataPath
- OData路径- 返回:
- 表中的数据
示例代码表示使用odataPath获取表1的前三条数据:
Object data=this.getDataAccess().getTableData("表1?$select=ID,文本,整数&$top=3");
-
deleteTableData
从表中删除与指定值匹配的记录- 参数:
tableName
- 要删除的表名primaryKey
- 字段名称/值对(使用唯一字段)以指定找到的集合。示例代码表示删除表1中ID为2的数据:
this.getDataAccess().deleteTableData("表1", new ColumnValuePair("ID", 2));
-
modifyTablesData
根据多个已编辑的数据更新(添加/编辑/删除)数据。- 参数:
modifyData
- 要编辑的数据列表代码表示给表1添加三行数据:
HashMap<String, ModifyData> modifyTablesDataParam = new HashMap<String, ModifyData>(); ModifyData modifyData = new ModifyData(); HashMap<String, Object> addParamA = new HashMap<String, Object>(); addParamA.put("文本","d"); addParamA.put("整数","4"); modifyData.getAddRows().add(addParamA); HashMap<String, Object> addParamB = new HashMap<String, Object>(); addParamB.put("文本","e"); addParamB.put("整数","5"); modifyData.getAddRows().add(addParamB); HashMap<String, Object> addParamC = new HashMap<String, Object>(); addParamC.put("文本","f"); addParamC.put("整数","6"); modifyData.getAddRows().add(addParamC); modifyTablesDataParam.put("表1", modifyData); this.getDataAccess().modifyTablesData(modifyTablesDataParam);
再删除一行,再修改一行:
HashMap<String, ModifyData> modifyTablesDataParam = new HashMap<String, ModifyData>(); ModifyData modifyData = new ModifyData(); ColumnValuePair dataTobeEditKey = new ColumnValuePair("文本", "e"); HashMap<String, Object> editParamNewValue = new HashMap<String, Object>(); editParamNewValue.put("文本", "ee"); editParamNewValue.put("整数", "55"); EditData editParam = new EditData(dataTobeEditKey, editParamNewValue); modifyData.getEditRows().add(editParam); modifyData.getDeleteRows().add(new ColumnValuePair("文本", "f")); modifyTablesDataParam.put("表1", modifyData); this.getDataAccess().modifyTablesData(modifyTablesDataParam);
-
updateTableData
更新与指定值匹配的记录- 参数:
tableName
- 更新目标表名称primaryKey
- 字段名称/值对(使用唯一字段)以指定找到的集合。updateValues
- 要被更新的值,Key表示列名,值是要被更新的值。示例代码表示更新ID为1的记录:
HashMap<String, Object> newValue = new HashMap<String, Object>(); newValue.put("文本", "aa"); newValue.put("整数", 11); this.getDataAccess().updateTableData("表1", new ColumnValuePair("ID", 1), newValue);
-
executeSql
Object executeSql(String connectionStringId, String sqlString, Map<String, Object> param, int timeOut) 执行 sql- 参数:
connectionStringId
- 连接字符串sqlString
- sql字符串param
- 参数timeOut
- 超时时间- 返回:
- void
示例代码表示执行sql查找ID为1的记录:
String connectionStringId = "demo-id"; String sqlStatement = "SELECT * FROM demo_table WHERE ID=@id"; Long timeout = 1000; // means 1 second HashMap<String, Object> parameters = new HashMap<String, Object>(); parameters.put("ID", 1); Object result = this.getDataAccess().executeSql(connectionStringId, sqlStatement, parameters, timeout);
-
executeSql
执行sql- 参数:
connectionStringId
- 连接字符串idsqlString
- sql字符串param
- 参数- 返回:
- 空
-
getConnectionString
根据表名获取连接字符串- 参数:
tableName
- 表明- 返回:
- 连接字符串
-
getConnectionInfo
获取数据表连接信息,数据表连接信息是解析过的连接字符串- 参数:
tableName
- 数据表名- 返回:
- 数据表连接信息
-
getConnectionStringByID
根据链接字符串id获取连接字符串- 参数:
connectionStringID
- 链接字符串id- 返回:
- 连接字符串
-
beginTransaction
用连接字符串开启事务- 参数:
connectionStr
- 连接字符串
-
beginTransaction
用连接字符串开启事务并指定隔离级别- 参数:
connectionStr
- 连接字符串isolationLevel
- 隔离级别
-
commitTransaction
用连接字符串提交事务- 参数:
connectionStr
- 连接字符串
-
rollbackTransaction
用连接字符串回滚事务- 参数:
connectionStr
- 连接字符串
-
generateSqlCondition
生成SQL条件- 参数:
queryInfos
- 请求条件 tableName 表名tableName
- 数据表名称- 返回:
- Object
-