sql安全在Oracle中将DB数据作为Java字符串进行比较?
我正在将两个Oracle数据库中的行数据拉入两个字符串列表。我想通过遍历这些列表并运行basic来比较这些行。等于()比较。遍历每个列表并通过字符串比较每个元素是否安全/实用
例如:
List<String> resultSet1 = <result set of rows from DB1 as string list>
List<String> resultSet2 = <result set of rows from DB2 as string list>
//假设结果集大小相同,并且指向具有相同主键/复合键的行
for(int i = 0; i < resultSet1.size(); i++)
{
if(resultSet1.get(i).equals(resultSet2.get(i))){
<DO SOMETHING>
}
}
# 1 楼答案
正如您的假设所述,结果集的大小必须相同。此外,它们必须以相同的顺序排序,并且包含相同的键集。也就是说,如果记录集1有{1,2,3,4},那么记录集2必须有{1,2,3,4}。{1,2,4,3}不会剪掉它,{1,2,3,5}也不会
除其他外,这意味着您的列表必须使用一个实际的实现类来保持顺序(或允许您控制顺序)
就我个人而言,我会将数据加入数据库。如果这是不可能的(例如,有两个独立的数据库,并且其中没有良好的分布式查询功能),那么我可能会使用HashMaps而不是以hashmap的键作为数据键的列表。这样,您就可以遍历resultSet1的键集,并使用该键从resultSet2中查找相应的值。这样会更清晰,更不容易出错