[Capstone]mybatis활용 (select값을 insert, 동적table생성)

김민수·2022년 4월 7일
0

1.동아리를 생성할 때

(Circle_tb에 저장할 때) 해당 동아리의 학교소속, 분야, 지역을 다른 각각 이미 저장되어있는 다른 테이블(College_tb,Region_tb,Interest_tb)에서 일치하는 값의 code를 가져와서 저장하려고 함.

  1. insert into 구문에서 value값에 select문을 사용.
  2. dao에 findcollegecode,findregioncode,findinterestcode를 만들어 mapper에서 select해서 찾아오는 방법.

나는 2번을 사용해서

    int insertCircle(CircleDTO param) throws Exception;
    int findInterestcode(String param);
    int findRegioncode(String param) throws Exception;
    int findCollegecode(String param) throws Exception;

이렇게 정의하고 추출한 code값을 파라미터로 사용해서 insertCircle을 통해 등록하려고 한다.

Controller

@GetMapping("circle/register")
    public int insert(
            @RequestParam("college") String college,
            @RequestParam("interest") String interest,
            @RequestParam("region") String region,
            @RequestParam("circle") String circle,
            @RequestParam("purpose") String purpose
    )throws  Exception{
        int a = circleDAO.findCollegecode(college);
        int b = circleDAO.findRegioncode(region);
        int c = circleDAO.findInterestcode(interest);
        final CircleDTO param = new CircleDTO(0,a,c,b,circle,purpose,null);
        return circleDAO.insertCircle(param);
    }

Mapper

 <select id ="findInterestcode" parameterType="String" resultType="int">
        SELECT interest_code
        FROM Interest_tb
        WHERE category = #{param}
    </select>

    <select id ="findRegioncode" parameterType="String" resultType="int">
        SELECT region_code
        FROM Region_tb
        WHERE city = #{param}
    </select>

    <select id ="findCollegecode" parameterType="String" resultType="int">
        SELECT college_code
        FROM College_tb
        WHERE college_name = #{param}
    </select>



    <insert id="insertCircle" parameterType="com.capstone.CircleSearch.Model.dto.CircleDTO" keyProperty="index">
        INSERT INTO Circle_tb(college_code , interest_code, region_code, circle_name,purpose)
        VALUES(#{college_code}, #{interest_code}, #{region_cdoe},#{circle_name},#{purpose})
    </insert>
profile
Hello Minsu World

0개의 댓글

관련 채용 정보