|
11 | 11 | import next.model.User; |
12 | 12 |
|
13 | 13 | public class UserDao { |
| 14 | + |
| 15 | + void setValuesForInsert(User user, PreparedStatement pstmt) throws SQLException { |
| 16 | + pstmt.setString(1, user.getUserId()); |
| 17 | + pstmt.setString(2, user.getPassword()); |
| 18 | + pstmt.setString(3, user.getName()); |
| 19 | + pstmt.setString(4, user.getEmail()); |
| 20 | + } |
| 21 | + |
| 22 | + void setValuesForUpdate(User user, PreparedStatement pstmt) throws SQLException { |
| 23 | + pstmt.setString(4, user.getUserId()); |
| 24 | + pstmt.setString(1, user.getPassword()); |
| 25 | + pstmt.setString(2, user.getName()); |
| 26 | + pstmt.setString(3, user.getEmail()); |
| 27 | + } |
| 28 | + |
| 29 | + String createQueryForInsert() { |
| 30 | + return "INSERT INTO USERS VALUES (?,?,?,?)"; |
| 31 | + } |
| 32 | + |
| 33 | + String createQueryForUpdate() { |
| 34 | + return "UPDATE USERS SET password = ?, name = ?, email = ? WHERE userid = ?"; |
| 35 | + } |
| 36 | + |
14 | 37 | public void insert(User user) throws SQLException { |
15 | | - Connection con = null; |
16 | | - PreparedStatement pstmt = null; |
17 | | - try { |
18 | | - con = ConnectionManager.getConnection(); |
19 | | - String sql = "INSERT INTO USERS VALUES (?, ?, ?, ?)"; |
20 | | - pstmt = con.prepareStatement(sql); |
21 | | - pstmt.setString(1, user.getUserId()); |
22 | | - pstmt.setString(2, user.getPassword()); |
23 | | - pstmt.setString(3, user.getName()); |
24 | | - pstmt.setString(4, user.getEmail()); |
25 | | - |
26 | | - pstmt.executeUpdate(); |
27 | | - } finally { |
28 | | - if (pstmt != null) { |
29 | | - pstmt.close(); |
30 | | - } |
31 | | - |
32 | | - if (con != null) { |
33 | | - con.close(); |
34 | | - } |
35 | | - } |
| 38 | + String query = "INSERT INTO USERS VALUES (?,?,?,?)"; |
| 39 | + JdbcTemplate insertJdbc = new JdbcTemplate() { |
| 40 | + @Override |
| 41 | + void setValues(PreparedStatement pstmt) throws SQLException { |
| 42 | + pstmt.setString(1, user.getUserId()); |
| 43 | + pstmt.setString(2, user.getPassword()); |
| 44 | + pstmt.setString(3, user.getName()); |
| 45 | + pstmt.setString(4, user.getEmail()); |
| 46 | + } |
| 47 | + }; |
| 48 | + insertJdbc.update(query); |
36 | 49 | } |
37 | 50 |
|
38 | 51 | public void update(User user) throws SQLException { |
39 | | - // TODO 구현 필요함. |
| 52 | + UpdateJdbcTemplate.update(user, new UserDao()); |
40 | 53 | } |
41 | 54 |
|
42 | 55 | public List<User> findAll() throws SQLException { |
43 | 56 | // TODO 구현 필요함. |
44 | | - return new ArrayList<User>(); |
| 57 | + ArrayList<User> list = new ArrayList<User>(); |
| 58 | + Connection con = null; |
| 59 | + PreparedStatement pstmt = null; |
| 60 | + ResultSet rs = null; |
| 61 | + |
| 62 | + try { |
| 63 | + con = ConnectionManager.getConnection(); |
| 64 | + String sql = "SELECT userId, password, name, email FROM USERS"; |
| 65 | + pstmt = con.prepareStatement(sql); |
| 66 | + |
| 67 | + rs = pstmt.executeQuery(); |
| 68 | + |
| 69 | + while(rs.next()) { |
| 70 | + list.add(new User(rs.getString("userId"), rs.getString("password"), rs.getString("name"), rs.getString("email"))); |
| 71 | + } |
| 72 | + |
| 73 | + return list; |
| 74 | + } finally { |
| 75 | + if (rs != null) { |
| 76 | + rs.close(); |
| 77 | + } |
| 78 | + if (pstmt != null) { |
| 79 | + pstmt.close(); |
| 80 | + } |
| 81 | + if (con != null) { |
| 82 | + con.close(); |
| 83 | + } |
| 84 | + } |
45 | 85 | } |
46 | 86 |
|
47 | 87 | public User findByUserId(String userId) throws SQLException { |
|
0 commit comments