Skip to content

Commit e72b7da

Browse files
retrieving autogenerated primary key
1 parent 7068e3f commit e72b7da

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

UserManagement/src/main/java/com/hms/management/dao/impl/UserRepositoryImpl.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@
55
import com.hms.management.dao.UserRepository;
66
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.jdbc.core.JdbcTemplate;
8+
import org.springframework.jdbc.core.PreparedStatementCreator;
9+
import org.springframework.jdbc.support.GeneratedKeyHolder;
10+
import org.springframework.jdbc.support.KeyHolder;
811
import org.springframework.stereotype.Repository;
912

13+
import java.sql.Connection;
14+
import java.sql.PreparedStatement;
15+
import java.sql.SQLException;
1016
import java.util.List;
1117

1218
@Repository
@@ -17,7 +23,17 @@ public class UserRepositoryImpl implements UserRepository {
1723
@Override
1824
public User create(User user) {
1925
String sql = "INSERT INTO users (userName,passowrd) VALUES (?, ?)";
20-
jdbcTemplate.update(sql,user.getUsername(),user.getPassword());
26+
KeyHolder keyHolder = new GeneratedKeyHolder();
27+
jdbcTemplate.update(new PreparedStatementCreator() {
28+
@Override
29+
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
30+
PreparedStatement ps = connection.prepareStatement(sql, new String[]{"UserId"});
31+
ps.setString(1, user.getUsername());
32+
ps.setString(2, user.getPassword());
33+
return ps;
34+
}
35+
}, keyHolder);
36+
user.setUserId( Integer.parseInt(keyHolder.getKey()+""));
2137
return user;
2238

2339
}

UserManagement/src/main/java/com/hms/management/rest/UserManagementRestControllerExceptionHandler.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import com.hms.management.rest.Exceptions.InvalidNameException;
44
import com.hms.management.rest.Exceptions.InvalidPasswordException;
5-
import org.aspectj.lang.annotation.Before;
65
import org.springframework.http.HttpStatus;
7-
import org.springframework.http.ResponseEntity;
86
import org.springframework.web.bind.annotation.ControllerAdvice;
97
import org.springframework.web.bind.annotation.ExceptionHandler;
108
import org.springframework.web.bind.annotation.ResponseBody;
@@ -14,23 +12,24 @@
1412

1513
@ControllerAdvice
1614
public class UserManagementRestControllerExceptionHandler {
15+
1716
@ResponseBody
1817
@ExceptionHandler(value = InvalidNameException.class)
19-
public Map<String,String> invalidUserNameException(){
20-
Map<String,String> map = new HashMap<String, String>() ;
21-
map.put("status",HttpStatus.NOT_FOUND.toString());
22-
map.put("error","invalid user name. please enter a valid user name");
18+
public Map<String, String> invalidUserNameException() {
19+
Map<String, String> map = new HashMap<String, String>();
20+
map.put("status", HttpStatus.NOT_FOUND.toString());
21+
map.put("error", "invalid user name. please enter a valid user name");
2322

24-
return map;
23+
return map;
2524

2625
}
2726

2827
@ResponseBody
2928
@ExceptionHandler(value = InvalidPasswordException.class)
30-
public Map<String,String> invalidUserPasswordException(){
31-
Map<String,String> map = new HashMap<String, String>() ;
32-
map.put("status",HttpStatus.NOT_FOUND.toString());
33-
map.put("error","invalid password. please enter a valid password less than 20 characters");
29+
public Map<String, String> invalidUserPasswordException() {
30+
Map<String, String> map = new HashMap<String, String>();
31+
map.put("status", HttpStatus.NOT_FOUND.toString());
32+
map.put("error", "invalid password. please enter a valid password less than 20 characters");
3433

3534
return map;
3635

0 commit comments

Comments
 (0)