[java] 如何读取文件并将其内容添加到数据库?



Answers

患者列表包含“患者”,所以我首先要创建一个类Patient 。 然后,我会为文件中的所有行创建Patient实例。

public class Patient {
   private String name;
   private int age;
   private int height;
   private int weight;

   public Patient(String line) {
     String[] values = line.split("\\s+");
     name = values[0];
     age = values[1];
     height = values[2];
     weight = values[3];
   } 

   // not shown: getters/setters for the fields
}

现在,阅读线条并创建对象

List<Patient> patients = new ArrayList<>();
while((line = in.readLine()) != null){
    patients.add(new Patient(line));
}

并使用患者列表将数据保存到数据库。 为每个患者,准备一个插入语句并坚持。

Question

我有一个名为patientlist的文本文件,如下所示:

    george  19  180 75
    paul    20  182 84
    laura   21  176 73

我想要做的是读取这个文件,并将行添加到MySQL数据库中的表。 我已经写了这个代码读取文件:

    public static void patients() throws IOException{
    try {
        in= new BufferedReader(new FileReader(new File("patientlist.txt")));
    }
    catch (FileNotFoundException e) {System.out.println("There was a problem: " + e);}
    while((read = in.readLine()) != null){
        System.out.println(read);
     }
    }

“读”是文件中的值。 我想插入这些值到我的数据库中的表中,其中有参数(名称,年龄,身高,体重)在每一行的4个值。 我无法找到如何分隔线上的价值观。 因为我希望乔治,保罗和劳拉在数据库名称的参数下等,所以我可以使用选择在未来? 谢谢您的帮助!

我已经写了一些这样的代码,你可以检查出来吗?

     public static void main(String[] args) throws IOException {

    PreparedStatement preparedstatement = null;
    Connection connection = DBConnection();
    try{
        String read=null;
        in = new BufferedReader(new FileReader("patientlist.txt")); 
        while ((read = in.readLine()) != null) {
            String[] splited = read.split("\\s+");
            name = splited[0];
            age = splited[1];
            height = splited[2];
            weight = splited[3];
        }
    }
    catch (IOException e) {System.out.println("There was a problem: " + e);} 

    try {
        addpatient(connection, preparedstatement, name, age, height, weight);               
        if (connection != null)
            try{connection.close();} catch(SQLException ignore){}
        }

        catch (SQLException error) {System.out.println(error);}

    }
    public static void addpatient(Connection connection, PreparedStatement preparedstatement, String name, String age, String height, String weight) throws SQLException{
    preparedstatement=connection.prepareStatement("insert into allpatients(name, age, height, weight) values(?,?,?,?)");
    preparedstatement.setString(1, name);
    preparedstatement.setString(2, age);
    preparedstatement.setString(3, height);
    preparedstatement.setString(4, weight);
    preparedstatement.executeUpdate();

    }

连接连接= DBConnection(); 行创建与数据库的连接有另一种方法,我没有写在这里。 我认为问题是与我的while循环,我想我也应该把一个for循环,但我的编程不是很好,请帮助,谢谢。




Links