KIC/MyBatis

day58 - MyBatis(parameterType, resultType, 게시판에 mybatis 적용)

바차 2021. 9. 6. 23:46
반응형

[board.xml]

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="board" >

<select id="seqNextval" resultType="int">
select multiboardseq.nextval from dual
</select>
<insert id="insertBoard" parameterType="board">

insert into multiboard
(num, name, pass, subject, content, file1, regdate, readcnt, ref,reflevel, refstep, boardid) values 
(# {num}, #{name}, #{pass},#{subject},#{content}, #{file1}, 
sysdate, 0,#{ref}, #{reflevel},#{refstep},#{boardid})

</insert>
<!-- 파라미터가 boardid 하나만 있으므로   parameterType은 String, 결과 값은 count 값이므로 int-->
<select id="boardCount" parameterType="String" resultType="int">

select count(*) count from multiboard where boardid=#{boardid} </select>

<!-- 파라미터가 여러개이니 map으로, 결과 값은 * 로 여러개를 묶어 출력하니 board 로 -->
<select id="list" parameterType="map" resultType="board">

select * from (select rownum rnum,a.*

from (select * from multiboard where boardid = #{boardid} order by ref desc, refstep) a )

where rnum between #{start} and #{end}
</select>

<!-- select는 결과값이 select문을 통해 출력되기 때문에 parameterType 뿐만 아니라 resultType도 있어야 한다.  -->
<select id="selectOne" parameterType="int" resultType="board">
select * from multiboard where num=#{num}
</select>

<select id="readcntadd" parameterType="int">
update  multiboard set readcnt = readcnt + 1  where num =#{num}
</select>

<update id="refstepadd" parameterType="map">
update  multiboard set refstep = refstep + 1" + " where ref = #{ref} and refstep > #{refstep}
</update>


<update id="update" parameterType="board">
update  multiboard set name=#{name},subject=#{subject},content=#{content},file1=#{file1}" + " where num=#{num}
</update>

<!-- insert, update, delete는 결과 값이 없기 때문에 resultType은 없고 parameterType은 있다.  -->
<delete id="delete" parameterType="int">
delete from multiboard where num=#{num}
</delete>
</mapper>
300x250