SpringBoot | MyBatis, 오라클 연동하여 목록 구현하기!

새니·2023년 7월 11일

SpringBoot

목록 보기
1/7
post-thumbnail

프로젝트 생성시

myBatis Framework, Oracle Driver dependency 추가 !

  • [pom.xml]에 자동으로 삽입됨!


[memberDto 생성]

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;
	}
	
	
}
  • memberDto의 type을 alias로 지정해주기!


[Mapper-memberMpper]

<?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>
  • memberDto 에서 만든 alias를 resultType / parameterType 에서 사용



[memberDao] 작성!

@Repository
public class MemberDao {
	@Autowired SqlSession session;
	
	public List<MemberDto> getList(){
		return session.selectList("member.getList");
	}
}

[membercontroller]작성


@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;
	}
}
  • 간단한 구현을 위해서 인터페이스가 아닌 dao를 주입받아서 사용했다!

[list.jsp]

<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>


😊 결과

profile
새니의 뒤죽박죽 개발 일기📝

0개의 댓글