202401to07
  • 2024.02.24.금.day38
    2024년 02월 23일 11시 48분 45초에 업로드 된 글입니다.
    작성자: 202401to07

    마이바티스 프레임 웍 
      -라이브러리 사용해서 보자 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도 이렇게 하기

     

     

     

     

     

     

     

     

     

     

     

     

    '보안' 카테고리의 다른 글

    2024.02.27.화.day40  (0) 2024.03.04
    2024.02.26.월.day39  (0) 2024.02.26
    2024.02.22.목.day37  (0) 2024.02.23
    2024.02.21.수.day36  (0) 2024.02.21
    2024.02.20.화.day35  (0) 2024.02.20
    댓글