LoginSignup
0
0

More than 1 year has passed since last update.

【Angularアプリケーション開発 #12】APIを作成しよう

Posted at

はじめに

タイトルにAngularと書いていますが、今回はAngularのことは出てきません。
java側で各リクエストに応じたAPIを作ってきたのでご紹介します。

前提

従業員テーブルに対してCRUDになります。
id,nameをカラムに持っています。
APIのメソッド名は適当につけています。参考にしないでください。

各種API

取得

テーブルに存在するレコードを全て取得

	// 取得
    @GetMapping("api/getUserInfo")
    public List<UserInfo> getHoge() {
    	List<Map<String,Object>> userInfoListMap;

    	List<UserInfo> userInfoList = new ArrayList<UserInfo>();

        userInfoListMap = jdbcTemplate.queryForList("select id,name from userinfo");

        for(Map<String,Object> map:userInfoListMap) {
        	UserInfo info = new UserInfo();
        	info.setId((int) map.get("id"));
        	info.setName((String) map.get("name"));
        	userInfoList.add(info);
        }
        return userInfoList;
    }

1件取得

クエリパラメータでidが渡ってきます。api/getUser?id=i

    // 1件取得
    @GetMapping("api/getUser")
    public UserInfo getPiyo(@RequestParam("id") String id) {
    	UserInfo userinfo = new UserInfo();

        Map<String,Object> result = jdbcTemplate.queryForMap("select id,name from userinfo where id = ?",id);

        userinfo.setId((int) result.get("id"));
        userinfo.setName((String) result.get("name"));

        return userinfo;
    }

条件に一致するレコードリストを取得

    // 従業員名称で検索
    @GetMapping("api/searchUser")
    public List<UserInfo> searchUser(@RequestParam("name") String name) {
    	List<Map<String,Object>> userInfoListMap;
    	System.out.println(name);

    	List<UserInfo> userInfoList = new ArrayList<UserInfo>();

        userInfoListMap = jdbcTemplate.queryForList("select id,name from userinfo where name like " + "'" + name + "%'");

        for(Map<String,Object> map:userInfoListMap) {
        	UserInfo info = new UserInfo();
        	info.setId((int) map.get("id"));
        	info.setName((String) map.get("name"));
        	userInfoList.add(info);
        }
        return userInfoList;
    }

更新

こちらは、リクエストボディにデータがセットされてきます。

    // 更新
    @PutMapping("api/updateUser")
    public int getFuga(@RequestBody UserInfo userinfo) {

        int rowNumber = jdbcTemplate.update("UPDATE userinfo"
                + " SET"
                + " name = ?"
                + " WHERE id = ?",
                userinfo.getName(),
                userinfo.getId());

        return rowNumber;
    }

登録

    //1件登録
    @PostMapping("api/addUser")
    public UserInfo getFugaFuga(@RequestBody UserInfo newUserinfo) {

    	Map<String,Object> result = jdbcTemplate.queryForMap("select max(id) id from userinfo");
    	int maxId = (int)result.get("id");
    	newUserinfo.setId(++maxId);
    	System.out.println(newUserinfo.getId());

        int rowNumber = jdbcTemplate.update("INSERT INTO userinfo(id,"+ " name)" + " VALUES(?, ?)",
                newUserinfo.getId(),
                newUserinfo.getName());

        return newUserinfo;
    }

削除

    // 1件削除
    @DeleteMapping("api/deleteUser")
    public int getFugaPiyo(@RequestParam("id") String id) {

    	int rowNumber = jdbcTemplate.update("DELETE FROM userinfo WHERE id = ?", id);

        return rowNumber;
    }

最後に

メソッド上部にHTTPリクエストに応じたアノテーションがついています。
各リクエストメソッドについては以下を参照ください。
参照:GET
登録:POST
更新:PUT
削除:DELETE

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