mock-rc8 / bunjang_server_ray_kevin

0 stars 1 forks source link

해시태그 저장 관련 코드 #2

Open ray-yhc opened 2 years ago

ray-yhc commented 2 years ago

해시태그 저장 관련 코드

-> 필요하신 도메인의 DAO에 넣고 쓰시면 됩니다! tag들을 List<String>형태로 입력해주세요

    /**
     * 해시태그 입력
     */
    public void addHashTags(int productId, List<String> hashtags) {
        int tagId;
        for (String h : hashtags) {
            try {
                // 이미 저장된 태그인지 확인
                tagId = this.jdbcTemplate.queryForObject(
                        "SELECT * FROM Tag WHERE tag = " + h ,
                        (rs, rowNum) -> rs.getInt("id")
                );
            } catch (IncorrectResultSizeDataAccessException error) {
                // 저장되지 않은 태그이므로
                // 새로운 태그 생성
                this.jdbcTemplate.update(
                        "INSERT INTO Tag (tag) VALUES (" + h +")"
                );
                // 새로 생성된 태그의 id 추출
                tagId = this.jdbcTemplate.queryForObject(
                        "SELECT last_insert_id()",
                        Integer.class);
            }

            // 영상의 id와 해시태그의 id 입력
            this.jdbcTemplate.update(
                    "INSERT INTO TagProductMap (productId, tagId) VALUE (?,?)",
                    productId, tagId);
        }
    }