Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9f0dc33

Browse files
writing package "reading"
1 parent 8ca9a13 commit 9f0dc33

File tree

2 files changed

+110
-1
lines changed

2 files changed

+110
-1
lines changed
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package com.example.randombook.reading;
2+
3+
import com.example.randombook.book.Book;
4+
import com.example.randombook.category.Category;
5+
import org.springframework.jdbc.core.JdbcTemplate;
6+
import org.springframework.jdbc.core.RowMapper;
7+
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
8+
import org.springframework.stereotype.Repository;
9+
10+
import java.util.HashMap;
11+
import java.util.List;
12+
import java.util.Map;
13+
import java.util.Optional;
14+
15+
@Repository
16+
public class JdbcReadingDAO implements ReadingDAO{
17+
18+
private final JdbcTemplate jdbcTemplate;
19+
private final SimpleJdbcInsert insertReading;
20+
21+
public JdbcReadingDAO(JdbcTemplate jdbcTemplate) {
22+
this.jdbcTemplate = jdbcTemplate;
23+
insertReading = new SimpleJdbcInsert(jdbcTemplate)
24+
.withTableName("reading")
25+
.usingGeneratedKeyColumns("id_reading");
26+
}
27+
28+
RowMapper<Reading> rowMapper = (rs, rowNum) -> new Reading(
29+
rs.getInt("id_reading"),
30+
rs.getInt("id_user"),
31+
rs.getInt("id_book"),
32+
rs.getDate("date"),
33+
rs.getString("state")
34+
);
35+
36+
@Override
37+
public List<Reading> findAll() {
38+
String sql = "SELECT * FROM reading";
39+
return jdbcTemplate.query(sql, rowMapper);
40+
}
41+
42+
@Override
43+
public Optional<Reading> findById(int id_reading) {
44+
String sql = "SELECT * FROM reading where id_reading = ?";
45+
return Optional.of(jdbcTemplate.queryForObject(sql, rowMapper, id_reading));
46+
}
47+
48+
@Override
49+
public List<Reading> findAllByUserId(int id_user) {
50+
String sql = "SELECT * FROM reading where id_user = ?";
51+
return jdbcTemplate.query(sql, rowMapper, id_user);
52+
}
53+
54+
@Override
55+
public List<Reading> findAllByBookId(int id_book) {
56+
String sql = "SELECT * FROM reading where id_book = ?";
57+
return jdbcTemplate.query(sql, rowMapper, id_book);
58+
}
59+
60+
@Override
61+
public Reading create(Reading reading) {
62+
Map<String,Object> parameters = new HashMap<>();
63+
parameters.put("id_user", reading.getUser());
64+
parameters.put("id_book", reading.getBook());
65+
parameters.put("date", reading.getDate());
66+
parameters.put("state", reading.getState());
67+
Number id_reading = insertReading.executeAndReturnKey(parameters);
68+
return new Reading(
69+
(Integer) id_reading,
70+
reading.getUser(),
71+
reading.getBook(),
72+
reading.getDate(),
73+
reading.getState()
74+
);
75+
}
76+
77+
@Override
78+
public Reading update(Reading reading, int id_reading) {
79+
String sql = "update reading set id_user = ?, " +
80+
"id_book = ?, date = ?, " +
81+
"state = ? where id_reading = ?";
82+
Reading r = new Reading(
83+
id_reading,
84+
reading.getUser(),
85+
reading.getBook(),
86+
reading.getDate(),
87+
reading.getState()
88+
);
89+
jdbcTemplate.update(
90+
sql,
91+
r.getUser(),
92+
r.getBook(),
93+
r.getDate(),
94+
r.getState(),
95+
r.getId()
96+
);
97+
return r;
98+
}
99+
100+
@Override
101+
public void delete(int id_reading) {
102+
jdbcTemplate.update("delete from reading where id_reading = ?",id_reading);
103+
}
104+
105+
@Override
106+
public long count() {
107+
return jdbcTemplate.queryForObject("select count(*) from reading", Long.class);
108+
}
109+
}

‎src/main/java/com/example/randombook/reading/ReadingDAO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public interface ReadingDAO {
77
List<Reading> findAll();
88
Optional<Reading> findById(int id_reading);
99
List<Reading> findAllByUserId(int id_user);
10-
List<Reading> findAlByBookId(int id_book);
10+
List<Reading> findAllByBookId(int id_book);
1111
Reading create(Reading reading);
1212
Reading update(Reading reading, int id_reading);
1313
void delete(int id_reading);

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /