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 4c7c752

Browse files
created user package
1 parent ada6620 commit 4c7c752

File tree

4 files changed

+205
-0
lines changed

4 files changed

+205
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.example.randombook.user;
2+
3+
import com.example.randombook.book.Book;
4+
import org.springframework.jdbc.core.JdbcTemplate;
5+
import org.springframework.jdbc.core.RowMapper;
6+
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
7+
import org.springframework.stereotype.Repository;
8+
9+
import java.util.*;
10+
11+
@Repository
12+
public class JdbcUserDAO implements UserDAO {
13+
14+
private final List<User> users;
15+
private final JdbcTemplate jdbcTemplate;
16+
private final SimpleJdbcInsert insertUser;
17+
18+
public JdbcUserDAO(JdbcTemplate jdbcTemplate) {
19+
this.users = new ArrayList<>();
20+
this.jdbcTemplate = jdbcTemplate;
21+
insertUser = new SimpleJdbcInsert(jdbcTemplate)
22+
.withTableName("user")
23+
.usingGeneratedKeyColumns("id_user");
24+
}
25+
26+
RowMapper<User> rowMapper = (rs, rowNum) -> {
27+
return new User(
28+
rs.getInt("id_user"),
29+
rs.getString("username"),
30+
rs.getString("email"),
31+
rs.getString("password"),
32+
rs.getString("picture")
33+
);
34+
};
35+
36+
@Override
37+
public List<User> findAll() {
38+
String sql = "SELECT * FROM \"user\"";
39+
return jdbcTemplate.query(sql, rowMapper);
40+
}
41+
42+
@Override
43+
public Optional<User> findById(int id) {
44+
String sql = "SELECT * FROM \"user\" where id_user = ?";
45+
return Optional.of(jdbcTemplate.queryForObject(sql, rowMapper, id));
46+
}
47+
48+
@Override
49+
public User create(User user) {
50+
Map<String,Object> parameters = new HashMap<>();
51+
parameters.put("username", user.getUsername());
52+
parameters.put("email", user.getEmail());
53+
parameters.put("password", user.getPassword());
54+
parameters.put("picture", user.getPicture());
55+
Number id_user = insertUser.executeAndReturnKey(parameters);
56+
return new User(
57+
(Integer) id_user,
58+
user.getUsername(),
59+
user.getEmail(),
60+
user.getPassword(),
61+
user.getPicture()
62+
);
63+
}
64+
65+
@Override
66+
public User update(User user, int id) {
67+
String sql = "update \"user\" set username = ?, " +
68+
"email = ?, password = ?, " +
69+
"picture = ? where id_user = ?";
70+
User u = new User(
71+
id,
72+
user.getUsername(),
73+
user.getEmail(),
74+
user.getPassword(),
75+
user.getPicture()
76+
);
77+
jdbcTemplate.update(
78+
sql,
79+
u.getUsername(),
80+
u.getEmail(),
81+
u.getPassword(),
82+
u.getPicture(),
83+
u.getId()
84+
);
85+
return u;
86+
}
87+
88+
@Override
89+
public void delete(int id) {
90+
jdbcTemplate.update("delete from \"user\" where id_user = ?",id);
91+
}
92+
93+
@Override
94+
public long count() {
95+
return jdbcTemplate.queryForObject("select count(*) from \"user\"", Long.class);
96+
}
97+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.example.randombook.user;
2+
3+
public class User {
4+
5+
private final int id;
6+
private final String username;
7+
private final String email;
8+
private final String password;
9+
private final String picture;
10+
11+
public User(int id, String username, String email, String password, String picture) {
12+
this.id = id;
13+
this.username = username;
14+
this.email = email;
15+
this.password = password;
16+
this.picture = picture;
17+
}
18+
19+
public int getId() {
20+
return id;
21+
}
22+
23+
public String getUsername() {
24+
return username;
25+
}
26+
27+
public String getEmail() {
28+
return email;
29+
}
30+
31+
public String getPassword() {
32+
return password;
33+
}
34+
35+
public String getPicture() {
36+
return picture;
37+
}
38+
39+
@Override
40+
public String toString() {
41+
return "User{" +
42+
"id=" + id +
43+
", username='" + username + '\'' +
44+
", email='" + email + '\'' +
45+
", password='" + password + '\'' +
46+
", picture='" + picture + '\'' +
47+
'}';
48+
}
49+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.example.randombook.user;
2+
3+
import com.example.randombook.category.Category;
4+
import com.example.randombook.category.JdbcCategoryDAO;
5+
import org.springframework.http.HttpStatus;
6+
import org.springframework.web.bind.annotation.*;
7+
8+
import java.util.List;
9+
import java.util.Optional;
10+
11+
@RestController
12+
@RequestMapping("/user")
13+
public class UserController {
14+
15+
private final JdbcUserDAO dao;
16+
17+
public UserController(JdbcUserDAO dao) {
18+
this.dao = dao;
19+
}
20+
21+
@GetMapping
22+
public List<User> findAll() {
23+
return dao.findAll();
24+
}
25+
26+
@GetMapping("/{id}")
27+
public Optional<User> findById(@PathVariable int id) {
28+
return dao.findById(id);
29+
}
30+
31+
@ResponseStatus(HttpStatus.CREATED)
32+
@PostMapping
33+
public User create(@RequestBody User user) {
34+
return dao.create(user);
35+
}
36+
37+
@PutMapping("/{id}")
38+
public User update(@RequestBody User user, @PathVariable int id) {
39+
return dao.update(user, id);
40+
}
41+
42+
@DeleteMapping("/{id}")
43+
public void delete(@PathVariable int id) {
44+
dao.delete(id);
45+
}
46+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.example.randombook.user;
2+
3+
import java.util.List;
4+
import java.util.Optional;
5+
6+
public interface UserDAO {
7+
List<User> findAll();
8+
Optional<User> findById(int id);
9+
User create(User user);
10+
User update(User user, int id);
11+
void delete(int id);
12+
long count();
13+
}

0 commit comments

Comments
(0)

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