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