回答編集履歴

2

付け忘れ追加

2019/05/30 13:07

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -28,6 +28,8 @@
28
28
 
29
29
  new RowMapper<Employee>() {
30
30
 
31
+ @Override
32
+
31
33
  public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
32
34
 
33
35
  Employee employee = new Employee();

1

コード変更

2019/05/30 13:07

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -10,7 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- id によって SELECT が 0~1件しか結果を返さないのでしたら, List にも 0~1件しか入っていませんので, それを取り出して Employee に詰め直し, 返り値として戻せば良いと思います.
13
+ ~~id によって SELECT が 0~1件しか結果を返さないのでしたら, List にも 0~1件しか入っていませんので, それを取り出して Employee に詰め直し, 返り値として戻せば良いと思います.~~
14
+
15
+
16
+
17
+ いっそ queryForObject を使うようにしてみました. なお, コンパイルもしていませんので, ご参考までに.
14
18
 
15
19
 
16
20
 
@@ -18,21 +22,29 @@
18
22
 
19
23
  public Employee selectEmployee(String id) {
20
24
 
21
- List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from unit02.addressbook where id = '200101'");
25
+ return jdbcTemplate.queryForObject("select * from unit02.addressbook where id = ?",
22
26
 
23
- if(list == null || list.size() == null) return null; //ここから下はテキトウです
27
+ new Object[]{ id },
24
28
 
25
- Map<String, Object> row = list.get(0);
29
+ new RowMapper<Employee>() {
26
30
 
27
- String id = row.get("id");
31
+ public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
28
32
 
29
- String name = row.get("name");
33
+ Employee employee = new Employee();
30
34
 
31
- String phone = row.get("phone");
35
+ employee.setId(rs.getString("id"));
32
36
 
33
- String address = row.get("address");
37
+ employee.setName(rs.getString("name"));
34
38
 
35
- return new Employee(id, name, phone, address);
39
+ employee.setPhone(rs.getString("phone"));
40
+
41
+ employee.setAddress(rs.getString("address"));
42
+
43
+ return employee;
44
+
45
+ }
46
+
47
+ });
36
48
 
37
49
  }
38
50