· 7 years ago · Feb 25, 2019, 11:26 PM
1private void readUserFile(String filename) {
2
3 try {
4
5 //Verify if file users exists
6 boolean exists = (new File(filename)).exists();
7
8 if (!exists) {
9 //If file users not exists create one, bases on distinct users that exist in ratings table
10
11 ResultSet rsUsers = jdbcTemplate.getDataSource().getConnection().createStatement().executeQuery("SELECT DISTINCT UserID FROM ratings order by UserID;");
12
13 List<String> users = new ArrayList<String>();
14
15
16
17 while (rsUsers.next()) {
18
19 users.add(String.valueOf(rsUsers.getInt(1)));
20 }
21
22 rsUsers.close();
23
24 //Create and write to file
25 BufferedWriter f = null;
26 f = new BufferedWriter(new FileWriter(filename));
27
28 for (String user : users) {
29 f.write(user);
30 f.newLine();
31 }
32 f.close();
33
34 }
35
36 PreparedStatement prstInsert = con.prepareStatement("INSERT INTO users VALUES (?)");
37 BufferedReader in = new BufferedReader(new FileReader(filename));
38 int i = 0;
39 while (true) {
40 String s = in.readLine();
41 if (s == null) { // end of file
42 log.info("Total imported users: " + i);
43 break;
44 }
45 i++;
46
47 int userid = Integer.parseInt(s);
48 prstInsert.setInt(1, userid);
49
50 if (i != 0 && Math.round((double) i / 100) == ((double) i / 100)) {
51 log.info("Imported users: " + i);
52 }
53 prstInsert.executeUpdate();
54 }
55 } catch (FileNotFoundException e) {
56 e.printStackTrace();
57 } catch (IOException e) {
58 e.printStackTrace();
59 } catch (SQLException e) {
60 e.printStackTrace();
61 }
62}