2024.02.24.금.day38
마이바티스 프레임 웍
-라이브러리 사용해서 보자 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
현재 테이블이 3개 0223.txt0.00MB
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도 이렇게 하기