보안

2024.02.24.금.day38

202401to07 2024. 2. 23. 11:48

마이바티스 프레임 웍 
  -라이브러리 사용해서 보자 sql실행하는 '구조적으로 jdbc dao구현'
반복되는 코드를 없애보자 (swl파라미터와 자바 객체의 매핑)
  -마이바티스는 jdbc로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 매칟ㅇ을 대신해준다 
  -마이바티스구현 방법 중에는 xml파일을 사용하는것이 제일 많이 사용됩니다 
xml: html과 같이 태그를 사용하면 데이터를 저장합니다 
단. html과 같이 지정된  태그를 사용하지 않거 여러가지 형식을 
만들어내는 방법이 있습니다 .
xml파일은 설정, 데이터 저장 목적으로 사용됩니다 
예시: 톰캣의 서버 port설정은 결국은 server.xml파일내용입니다

 

마이바티스 설치 

https://github.com/mybatis/mybatis-3/releases

 

Releases · mybatis/mybatis-3

MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.

github.com

 

 

 

0223.txt
0.00MB
현재 테이블이 3개
tbl_custom
tbl_product
tbl_buy
이렇게 3개이다
tbl_buy- BuyDao에 selectCustomerBuyList 추가하여 
selectCustomerBuyList 를 실행해보자

위의 테이블에 대한 마이바티스 Dao만들자.

 

1단계 

 

mybatis-config.xml에 

<typeAlias type="day4.mybatis.dto.BuyDto" alias="BuyDto"/>

<typeAlias type="day4.mybatis.dto.ProductDto" alias="ProductDto"/>

<typeAlias type="day4.mybatis.dto.CustomerDto" alias="CustomerDto"/>

<typeAlias type="day4.mybatis.dto.CustomBuyDto" alias="CustomBuyDto"/>

넣고

<mapper resource="mybatis/buys.xml"/>

<mapper resource="mybatis/customer.xml"/>

<mapper resource="mybatis/products.xml"/>

넣기 

 

2단계


dto 가 vo
xml. 가 dao 

기존의 파일들 마이바티스를위한 파일로 새로 만들어서 복붙하기

 

 

Dao보고 xml옮기는 법 

 ex) buys.xml - selectCustomerBuyList 메서드

<?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">
  <!--  이 파일의 이름은 SQL 매퍼입니다. 실행할 sql만 모아놓은 파일입니다.
  	1. dml명령어 insert, update, delete, select과 동일한 태그에 작성하기
  	2. dao 메소드에서 지정했던 메소드의 인자, 리턴타입 정하기
  		주의 : 자바 객체의 변수(속성)명과 ${}파라미터 이름을 동일하게 해야합니다
  		 	  parameterType가 Map일때는 key이름과 파라미터이름을 동일하게 해야한다.
  			  기본형식, String은 변수 선언 키워드와 동일하게 합니다.
  			  -->
  <mapper namespace="tblbuy">
  <!--리턴타입이 List일때에는 제너틱 타입만 설정하면 됩니다  -->
  	<select id="selectAll" resultType="BuyDto">
  		select * from tbl_buy
  	</select>
  	<!-- insert,delete,update는 리턴타입 지정안합니다. 그래도 값은 리턴해줍니다 -->
  	<insert id="insert" parameterType="BuyDto">
  		INSERT INTO TBL_BUY
  			VALUES (buy_pk_seq.nextval, #{customid},#{pcode},#{quantity},sysdate)
  	</insert>
  	
  	<update id="update" parameterType="java.util.Map">
		UPDATE tbl_buy
			SET QUANTITY = #{quantity}
			WHERE BUY_IDX = #{buy_idx}
	</update >
	<delete id= "delete">
	DELETE FROM tbl_buy
		WHERE BUY_IDX= #{buy_idx}
	</delete>
	
  	<select id="selectCustomerBuyList"  parameterType="String" resultType="CustomBuyDto">
  		SELECT BUY_IDX ,tb.PCODE , PNAME, PRICE, QUANTITY ,BUY_DATE 
  		FROM TBL_BUY tb 
  		JOIN TBL_PRODUCT tp 
  		ON tb.PCODE = tp.PCODE
  		WHERE tb.CUSTOMID =#{customerid} 
  		ORDER BY BUY_DATE DESC
  	</select>

  	
  </mapper>

 

 

3단계 이제 마이바티스 dao만들기 

 

4단계 마지막 MybatisSessionTest 을 자바로 실행하기

 

 

이제 다른 product, customer도 이렇게 하기