
myBatis Framework, Oracle Driver dependency 추가 !


package com.example.boot05.member.dto;
import org.apache.ibatis.type.Alias;
// @Alias("type의 별칭 ")
@Alias("memberDto")
public class MemberDto {
private int num;
private String name;
private String addr;
public MemberDto() {}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public MemberDto(int num, String name, String addr) {
super();
this.num = num;
this.name = name;
this.addr = addr;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- 아래는 xml문서의 형식을 정하는 코드 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">
<select id="getData" parameterType="int" resultType="memberDto">
select num, name, addr
from member
where num=#{num}
</select>
<update id="update" parameterType="memberDto">
update member
set name=#{name}, addr=#{addr}
where num=#{num}
</update>
<delete id="delete" parameterType="int">
delete from member
where num=#{num}
<!-- 파라미터type이 int이기 때문에 num에는 다른 문자가 와도 상관없다. -->
</delete>
<insert id="insert" parameterType="memberDto">
insert into member
(num, name, addr)
values(member_seq.nextval, #{name}, #{addr})
<!-- MemberDto 의 필드명과 같으면 자동으로 binding된다 -->
</insert>
<select id="getList" resultType="memberDto">
select num, name, addr
from member
order by num ASC
</select>
</mapper>
@Repository
public class MemberDao {
@Autowired SqlSession session;
public List<MemberDto> getList(){
return session.selectList("member.getList");
}
}
@Controller
public class MemberController {
@Autowired MemberDao dao;
@GetMapping("/member/list")
public ModelAndView list(ModelAndView mView) {
//회원 목록
List<MemberDto> list=dao.getList();
mView.addObject("list",list);
mView.setViewName("member/list");
return mView;
}
}
<div class="container">
<h1>회원목록입니다.</h1>
<table>
<thead>
<tr>
<th>번호</th>
<th>이름</th>
<th>주소</th>
</tr>
</thead>
<tbody>
<c:forEach var="tmp" items= "${requestScope.list }">
<tr>
<td>${tmp.num }</td>
<td>${tmp.name }</td>
<td>${tmp.addr }</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
