//Google AdSense

Mybatis

개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크

* 퍼시스턴스 프레임워크(Persistence Framework)는 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이다. 퍼시스턴스 프레임워크를 사용하면 JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있으며 안정적인 구동도 보장한다.

공식 사이트 : http://www.mybatis.org/mybatis-3/ko/index.html

 

MyBatis – 마이바티스 3 | 소개

마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 ��

mybatis.org

라이브러리 추가 (mvnrepository.com)

  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>x.x.x</version>
  </dependency>

웹 프로젝트 3 Layer

Spring Boot DI 

KsmartMapper.java
 @Mapper
 public interface KsmartMapper {
   
    public Member getMemberList(매개변수);
   
}
KsmartMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="kr.or.ksmart.mapper.KsmartMapper">
   <select id="getMemberList" parameterType=“매개변수의 데이터 타입" resultType="kr.or.ksmart.vo.Member">
SELECT *
FROM tb_member
   </select>

   <insert id="" parameterType=“"></insert>
   <update id="" parameterType=“"></update>
   <delete id="" parameterType=“"></delete>
</mapper>

@Mapper interface 구현을 mapper.xml에서 함


WAS 부팅시 위 정보로 connect pool 저장

패키지 별칭을 정할 수 있다.

Member.java
package ksmart35.springboot_mybatis.domain;

public class Member {
	private String memberId;
	private String memberPw;
	private String memberName;
	private String memberLevel;
	private String memberEmail;
	public String getMemberId() {
		return memberId;
	}
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}
	public String getMemberPw() {
		return memberPw;
	}
	public void setMemberPw(String memberPw) {
		this.memberPw = memberPw;
	}
	public String getMemberName() {
		return memberName;
	}
	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	public String getMemberLevel() {
		return memberLevel;
	}
	public void setMemberLevel(String memberLevel) {
		this.memberLevel = memberLevel;
	}
	public String getMemberEmail() {
		return memberEmail;
	}
	public void setMemberEmail(String memberEmail) {
		this.memberEmail = memberEmail;
	}
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Member [memberId=");
		builder.append(memberId);
		builder.append(", memberPw=");
		builder.append(memberPw);
		builder.append(", memberName=");
		builder.append(memberName);
		builder.append(", memberLevel=");
		builder.append(memberLevel);
		builder.append(", memberEmail=");
		builder.append(memberEmail);
		builder.append("]");
		return builder.toString();
	}
		
}
MemberMapper.java
package ksmart35.springboot_mybatis.mapper;

import org.apache.ibatis.annotations.Mapper;

import ksmart35.springboot_mybatis.domain.Member;

@Mapper
public interface MemberMapper {
	//회원가입
	public int addMember (Member member);
}
MemberMapper.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="ksmart35.springboot_mybatis.mapper.MemberMapper">
	<insert id="addMember" parameterType="Member">
		INSERT INTO tb_member
		(m_id, m_pw, m_level, m_name, m_email)
		VALUES (#{memberId}
				, #{memberPw}
				, #{memberLevel}
				, #{memberName}
				, #{memberEmail})
	</insert>
</mapper>
    
MemberService.java
package ksmart35.springboot_mybatis.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import ksmart35.springboot_mybatis.domain.Member;
import ksmart35.springboot_mybatis.mapper.MemberMapper;

@Service
@Transactional
public class MemberService {
	@Autowired private MemberMapper memberMapper;
	public int addMember(Member member) {
		return memberMapper.addMember(member);
	}
}
MemberController.java
	@PostMapping("/addMember")
	public String addMember(Member member) {
		System.out.println(member.toString());
		memberService.addMember(member);
		return "index";
	}
	

화면에서 보여지는 처리과정의 역순으로 작성하는게 편함

+ Recent posts