ユーザ情報を取得、登録、更新、削除するRESTサービスを実装します
前回GET/POSTを実装したので、今回はユーザー情報を更新するPUTメソッド処理を実装します!
RESTサービス実装クラス
- 一件更新用のメソッドを実装
- UserDaoJdbcImplのupdateOneを呼びます
RestServiceJdbcImpl.java
//中略
@Override
public boolean update(User user) {
int result = dao.updateOne(user);
if(result == 0) {
return false;
} else {
return true;
}
}
//中略
UserDaoJdbcImpl.java
//中略
// Userテーブルを1件更新.
@Override
public int updateOne(User user) throws DataAccessException {
//パスワード暗号化
String password = passwordEncoder.encode(user.getPassword());
//1件更新
int rowNumber = jdbc.update("UPDATE M_USER"
+ " SET"
+ " password = ?,"
+ " user_name = ?,"
+ " birthday = ?,"
+ " age = ?,"
+ " marriage = ?"
+ " WHERE user_id = ?",
password,
user.getUserName(),
user.getBirthday(),
user.getAge(),
user.isMarriage(),
user.getUserId());
return rowNumber;
}
//中略
コントローラクラス実装
- PUTメソッドには@PutMappingを使う
- HTTPリクエストのボディ部分を@RequestBodyで引数にセット
UserRestController.java
//中略
/**
* ユーザー1件登録
*/
@PutMapping("/rest/update")
public String putUserOne(@RequestBody User user) {
// ユーザーを1件登録
boolean result = service.update(user);
String str = "";
if(result == true) {
str = "{\"result\":\"ok\"}";
} else {
str = "{\"result\":\"error\"}";
}
// 結果用の文字列をリターン
return str;
}
//中略
起動して確認!
- ターミナルからPUTします
- jsonで{"result":"ok"}が帰ってきたらうまくいってます!^^
- ユーザー一覧にもしっかり更新内容が反映されました🌟
$ curl -XPUT "http://localhost:8080/rest/update" -H 'Content-Type: application/json' -d '{"userId":"yamada@co.jp","password":"pass","userName":"birthday":"1911-11-11","age":"111","marriage":"false","role":"ROLE_ADMIN"}'
{"result":"ok"}