Java 如何读取文件并将其内容添加到数据库?
我有一个名为patientlist的文本文件,它看起来像:Java 如何读取文件并将其内容添加到数据库?,java,mysql,database,file,insert,Java,Mysql,Database,File,Insert,我有一个名为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 File
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个参数(姓名、年龄、身高、体重)。我找不到如何在一行上分隔值。因为我希望george、paul和laura在数据库中的名称等参数下,以便我将来可以使用select?谢谢你的帮助
我已经写了一些这样的代码,你能检查一下吗
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();
}
Connection=DBConnection();第行创建了与数据库的连接,该数据库有另一个我在这里没有写的方法。我认为问题在于我的while循环,我认为我也应该放一个for循环,但是我的编程不是很好,请帮助,谢谢 你能行
read.split("\\s+");
或者,如果您的值由选项卡
分隔
read.split("\t");
使用此代码:
String s = "george 19 180 75";
String[]split = s.split("\\s+");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
患者列表包含“患者”,因此我首先创建一个类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));
}
列出患者=新建ArrayList();
而((line=in.readLine())!=null){
患者。添加(新患者(行));
}
并使用患者列表将数据持久化到数据库中。为每位患者准备一份insert语句并保存 我不明白列表部分。你把它写在你的主方法中了吗?实际的代码有什么问题吗?“While”可以-除非每一行都包含有效记录。在访问这些值之前,您可以检查
splited.length==4
。现在应该在空行上引发异常。