TIL(Today I Learned)
2023.06.13 TIL
jjonse
2023. 6. 13. 21:43
(1) mybatis foreach & if 사용법
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">
<!-- 회원 전체 리스트 조회 -->
<select id="getMemberList" resultType="MemberVo">
SELECT * FROM MEMBER
<!-- collection은 array 또는 list이다.
넘기는게 배열이면 array, 넘기는게 list면 list이다.
-->
<foreach collection="array" item="x" separator="," open="WHERE NO IN (" close=")">
#{x}
</foreach>
</select>
<!-- 회원 한명 조회(번호) -->
<!-- resultType은 자동으로 맵핑해줘서 만드는 타입.
예를 들어서, 멤버테이블과 보드테이블을 조인했다.
작업하다보면 여기있는 이름이랑 실행결과의 이름이랑 다를 수 있다.
그럴 경우에는 매핑이 안되어버린다.
resultType이 동작할 수 있는 건 결과에서 얻어온 칼럼이 서로 이름이
똑같아야지만 연결되어 채워질 수 있는 건데, 만약 변수 이름이 memberId고
칼럼이 id면 연결이 안되어 버린다.
이럴 경우에는 resultType이 아니라 다른 것을 사용해야 한다.
resultMap을 사용하면 된다.
번거로워서 resultMap은 잘 안 쓴다.
-->
<select id="getMemberByNo" resultType="MemberVo">
SELECT * FROM MEMBER WHERE NO = #{no}
</select>
<!-- <resultMap type="MemberVo" id="abc">
<result column="" property=""/>
</resultMap>
-->
<insert id="insertMember">
INSERT INTO MEMBER(
NO, ID, PWD, NICK, PROFILE, HOBBY
) VALUES(
SEQ_MEMBER_NO.NEXTVAL
, #{id}
, #{pwd}
, #{nick}
, #{profile}
, #{hobby}
)
</insert>
<!-- 회원정보 수정 -->
<update id="updateMember">
UPDATE MEMBER
<trim prefixOverrides="," prefix="SET">
<if test="pwd != null and pwd != ''">
, PWD = #{pwd}
</if>
<if test="nick != null and nick != ''">
, NICK = #{nick}
</if>
, MODIFY_DATE = SYSDATE
</trim>
WHERE NO = #{no}
</update>
<!-- 회원 탈퇴 -->
<delete id="quit">
DELETE FROM MEMBER
WHERE NO = #{no}
</delete>
</mapper>
(2) STS란?
- STS는 이클립스 + 스프링 플러그인이다.
- STS는 단순히 툴에 불과하다.
STS 실행법
1. sts exe를 실행한다. 이때, 계속 사용할 거니까 작업표시줄에 고정한다.
2. 서버를 다 넣은 후에 preferences에 들어가 enc를 검색한다.
3. 모든 enc를 UTF-8로 변경한다.
4. packacge explorer에서 오른쪽 버튼 클릭해서 new를 누른다.
5. new를 누른 후에 spring legacy project를 클릭한다.
6. legacy project에서 mvc project를 실행한다.
7. 이름은 com.kh.app처럼 이런 식으로 회사명을 따서 이름짓는다.