有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript如何将文本文件数据与sql server表数据进行比较。我想要记录与记录的比较

我有一个文本文件和一个数据库连接,即SQL Server。我想要的是比较文件和数据库的记录

我正在寻找一种解决方案,可以帮助我比较各个记录,而不是在数据库中创建一个临时表,或者从数据库记录创建一个文件,然后进行比较

ResultSet rs=stmt.executeQuery(SQL_Query);
                    ResultSetMetaData rsMetaData = rs.getMetaData();
                    String aName = rsMetaData.getTableName(1);
                    System.out.println(aName);
                    int numberOfColumns = rsMetaData.getColumnCount();
                   // System.out.println("resultSet MetaData column Count = " + numberOfColumns);
                    while(rs.next()) 
                    {
                    for (int i = 1; i <= numberOfColumns; i++) {


                      // get the designated column's table name.
                        String ColumnName = rsMetaData.getColumnName(i);            
                    //System.out.print( ColumnName + " = ");
                    String ColumnValue = rs.getString(i);
                   // System.out.println(ColumnValue+"\t");

                    map.put(ColumnName, ColumnValue);
                    }
                    //System.out.println();

                    } 

                 // retrieve all key pairs present in a Table


                  //Retrieving the number of key-value pairs

                    System.out.println("the number of key-value pairs: "+map.size()+"\n");

                    // retrieve all key-value pairs present in a Table

                    Set<Entry<String, String>> keyValueSet = map.entrySet();

                    for (Entry<String, String> entry : keyValueSet) 
                    {
                        System.out.println(entry.getKey()+" : "+entry.getValue());
                    }

文本文件结构如下所示

始发|系统| ID | CFI |代码| CUSIP |描述1| PHEWYJHNVNW | DBFGBR | 037833100 | GB0000424886


共 (1) 个答案

  1. # 1 楼答案

    因为DB的搜索引擎比比较java内存中的对象更快。。。我建议您创建临时表

    如果没有,只需从文件中加载对象,并按主键在数据库中搜索记录是否存在,然后比较所需的字段

    如果你想要更详细的解决方案,你应该指定你正在使用的技术

    编辑建议的解决方案:

    加载文件并按id查询BD,如果匹配,则比较字段

    假设它是一个“CSV”文件,每行都有一个条目:

      Scanner scanner = new Scanner(new File("your path file"));
      String SQL_Query = " SELECT * FROM "table" WHERE ORIGINATING_SYSTEM_ID = '"
      while(r.hasNextLine()) {
           String fields[] = r.nextLine().split("|");
           if(fields.length>0 && !"ORIGINATING_SYSTEM_ID".equals(fields[0])){
                ResultSet rs=stmt.executeQuery(SQL_Query + fields[0] + "'");
                while (rs.next()) {
                    if(!StringUtils.isEmpty(fields[0]) 
                        && fields[0].equals(rs.getString("ORIGINATING_SYSTEM_ID"))
                     //Fields comparation...
                     //Another workaround to this(programatically better) is define a model, and map the values in it
                 }
           }
      }
      scanner.close();