首页 新闻 会员 周边

数据库表格文件状态提取JAVA

0
悬赏园豆:100 [待解决问题]

是这样的,我最近遇到的问题就是,我用JAVA连接数据库的一个表格获得里面的序列号,现在我有一个文件夹里面有这里面所有数据的状态(PASS/FAIL),我也能提取这个文件夹里面所有的文件名,我现在要怎么把这两个程序结合,从数据库提取信息然后通过查找文件名来输出该序列号的通过状态,以下是我的代码:(初步判断是通过循环,能有大神帮我写一下吗)

//连接数据库

package com.zp;
import java.sql.*;
import java.sql.Connection;
import java.sql.ResultSet;
public class conn1 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try
        {
            //加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //得到连接
            Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@8.8.0.0:oorrcdfcll", "1234", "4321");
            Statement sm=ct.createStatement();
            ResultSet rs=sm.executeQuery("select * from 222222");
            while(rs.next())
            {
                System.out.println("111:"+rs.getString(2));
                System.out.println("222:"+rs.getString(3));
                System.out.println("333:"+rs.getString(4));
            }
            rs.close();
            sm.close();
            ct.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
  
    }
}

 

//文件名 出于安全考虑, 其中的IP地址和用户名密码以及文件名我都改过了

import java.io.File;
import java.util.Vector;

public class SlipArray {
 public static void recursion(String root, Vector<String> vecFile) {
  File file = new File(root);
  File[] subFile = file.listFiles();
  for (int i = 0; i < subFile.length; i++) {
   if (subFile[i].isDirectory()) {
    recursion(subFile[i].getAbsolutePath(), vecFile);
   } else {
    String filename = subFile[i].getName();
    vecFile.add(filename);
   }
  }
 }
 public static void main(String[] args) {
  Vector<String> vecFile = new Vector<String>();
  recursion("E:/Test data1", vecFile);
  for (String fileName : vecFile)
  {
   System.out.println(fileName);
  }
 }

 }

//举例其中一个文件名就是172680136_1236.0033.0000.0_7_5_2017_4_55_53 PM_PASS,序列号就是172680136_...到0000.0,状态就是PASS。

EXTRAORDIANRY的主页 EXTRAORDIANRY | 初学一级 | 园豆:102
提问于:2017-07-13 10:03
< >
分享
所有回答(1)
1

从文件中读出状态放到一map中保存,key就是关联状态和数据库记录的值

然后再读数据库 , 循环输出记录的个时候,根据key从map中取出相应的状态输出,

苍枫露雨 | 园豆:1027 (小虾三级) | 2017-07-13 19:35

上星期刚学的JAVA。。。说实话很多程序也是照葫芦画瓢,你方便写一下吗?因为我找了好久资料都没有解决。不行的话也没有关系:-)

支持(0) 反对(0) EXTRAORDIANRY | 园豆:102 (初学一级) | 2017-07-14 10:22

@EXTRAORDIANRY: 

不清楚你具体的数据,没法写,

给你个样板,你照着写就行了,有问题可以问我,

public class Test {

    public Map<String, String> readFromFile(File file) throws IOException {
        Map<String, String> result = new HashMap<>();
        BufferedReader br = new BufferedReader(new FileReader(file));
        String temp = "";
        while ((temp = br.readLine()) != null) {
            String[] ss = temp.split("\t");  //文件内容的分隔符 假设为 key  status
            result.put(ss[0], ss[1]);
        }
        return result;
    }

    public void printDBAndStatus(Map<String, String> key2Status) {
        try {
            //加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //得到连接
            Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@8.8.0.0:oorrcdfcll", "1234", "4321");
            Statement sm = ct.createStatement();
            ResultSet rs = sm.executeQuery("select * from 222222");
            while (rs.next()) {
                String key = rs.getString(1);  //假设key为第一个
                System.out.println("status" + key2Status.get(key));  //打印重文件读出的状态
                System.out.println("111:" + rs.getString(2));
                System.out.println("222:" + rs.getString(3));
                System.out.println("333:" + rs.getString(4));
            }
            rs.close();
            sm.close();
            ct.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        Test test = new Test();
        File statusFile = new File("d:/test/status.txt");
        Map<String, String> key2Status = test.readFromFile(statusFile);
        test.printDBAndStatus(key2Status);
    }
}
支持(1) 反对(0) 苍枫露雨 | 园豆:1027 (小虾三级) | 2017-07-14 11:50

@EXTRAORDIANRY: 

重点是

方法: public Map<String, String> readFromFile(File file)

System.out.println("status" + key2Status.get(key)); //打印重文件读出的状态

支持(1) 反对(0) 苍枫露雨 | 园豆:1027 (小虾三级) | 2017-07-14 11:51

@EXTRAORDIANRY: 

这里的key,就是关联 状态与数据库中记录的 关键字, 根据你数据的实际情况选择,

比如,你取出一条数据库中的记录,怎么知道其状态, 是根据记录的id,或者name 在文件中找到对应的记录,找到其状态吧, id 或者 name就是key

 

readFile中的数据解析,是根据我假设的结构写的,你要根据你的数据结构 做相应改动

支持(1) 反对(0) 苍枫露雨 | 园豆:1027 (小虾三级) | 2017-07-14 14:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册