0
0

More than 3 years have passed since last update.

【Java・SpringBoot】RESTサービス③ - PUT(更新)メソッド

Posted at

ユーザ情報を取得、登録、更新、削除する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"}

スクリーンショット 2020-12-21 11.19.19.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0