实际开发运用的工具类优化(二)。

来源:互联网 发布:广联达市政预算软件 编辑:程序博客网 时间:2024/06/06 05:33

如下:(比较数据库表字段和pdm中字段是否一致的工具类。)





import java.util.ArrayList;
import java.util.List;


/** 
* @author : suyuyuan
* @date :2016年5月17日 上午9:41:05 
* @version 1.0 
*/
public class Comparison {


public static void main(String[] args) {


List<String> database = new ArrayList<String>();
List<String> powerdesigner = new ArrayList<String>();


// 数据库中取出的字段:
String base = " ID312  PAYMENT_TYPE_ID MONEY VOUCHER_IDPAYMENT_STATUS DELETEDADD_TIME UPDATE_TIME ";


String base4 = base.trim(); // 去除字符串两边的空格。
String sBase1 = base4.replaceAll(" ", ","); // 先把所有空格替换成 逗号。
String sBase2 = sBase1.replaceAll("\t", ","); // 再把所有的制表符替换成逗号。
String sBase3 = sBase2.replaceAll(",+", ","); // 把所有重复的逗号合并成一个逗号。
System.out.println(sBase3);


String[] baseArray = sBase3.split(",");
int baselength = baseArray.length;
System.out.println(baselength);


for (int i = 0; i < baselength; i++) {
database.add(baseArray[i].trim());
}


System.out.println(database);
System.out.println("------------------------------------------");


// PDM中取出的字段:
String designer = " ID  123  PAYMENT_TYPE_ID MONEY VOUCHER_IDPAYMENT_STATUS DELETEDADD_TIME UPDATE_TIME ";

String designer4=designer.trim();
String sDesigner1 = designer4.replaceAll(" ", ","); // 先把所有空格替换成 逗号。
String sDesigner2 = sDesigner1.replaceAll("\t", ","); // 再把所有的制表符替换成逗号。
String sDesigner3 = sDesigner2.replaceAll(",+", ","); // 把所有重复的逗号合并成一个逗号。
System.out.println(sDesigner3);


String[] designerArray = sDesigner3.split(",");
int designerlength = designerArray.length;
System.out.println(designerlength);


for (int i = 0; i < designerlength; i++) {
powerdesigner.add(designerArray[i].trim());
}


System.out.println(powerdesigner);


// 将database和powerdesigner进行对比,是否有差异元素
// 1、进行database在powerdesigner中的遍历
Boolean b1 = false;
String s1 = new String();
for (String baseItem : database) {


for (String designerItem : powerdesigner) {


if (baseItem.equals(designerItem)) {
b1 = true;
break; // 如果当前baseItem在powerdesigner中存在值,则跳出baseItem在剩余powerdesigner中的遍历,进行下一个baseItem的遍历;
}
b1 = false; // 如果在powerdesigner中找不到当前的baseItem,则设置Boolean为false。
}
if (!b1) {
s1 = baseItem;
System.out.println(s1 + "字段不存在PDM中");
}


}
// 2、同理,进行powerdesigner在database中的遍历
Boolean b2 = false;
String s2 = new String();
for (String designerItem : powerdesigner) {


for (String baseItem : database) {


if (designerItem.equals(baseItem)) {
b2 = true;
break;
}
b2 = false;
}
if (!b2) {
s2 = designerItem;
System.out.println(s2 + "字段不存在数据库中");
}


}


}
}

0 0