Reputation: 474
So I have this program that reads the text file and add its content to my database. I have no problem here. But when new content is added to file and the program is run again, all the values are stored in the database from the beginning, but i just want the new content to be added on top when i run the program for the second time. How can I do this, here is my code. Thanks in advance!!
public static void main(String[] args) throws IOException, SQLException {
PreparedStatement preparedstatement = null;
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];
addpatient(connection, preparedstatement, name, age, height, weight);
}
}
catch (IOException e) {System.out.println("There was a problem: " + e);}
if (connection != null)
try{connection.close();} catch(SQLException ignore){}
}
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();
}
Upvotes: 0
Views: 3868
Reputation: 528
if (!isPatent(connection, preparedstatement, name))
addpatient(connection, preparedstatement, name, age, height, weight);
public static boolean isPatient(Connection connection,
PreparedStatement preparedstatement, String name)
throws SQLException {
boolean exists = false;
preparedstatement = connection
.prepareStatement("select * from allpatients where name = ?");
preparedstatement.setString(1, name);
ResultSet rs = preparedstatement.executeQuery();
if (rs.next()) {
exists = true;
}
rs.close();
return exists;
}
Upvotes: 1