WebPrograming/수업정리

22.05.18 수업_ spring(4 차시)_myBatis작성(2)

스니썬더 2022. 5. 18. 15:25

1교시

  • Framwork란? 클래스의 묶음이나 뼈대,틀을 제공하는 라이브러리를 구현해놓은것
    • 다양한 라이브러리.플러그인 기능을 지원
  • Framwork 종류? 
    • 영속성 : MyBatis/hirebarnate
    • 자바 : Spring / 전자정부표준프레임워크
    • 화면구현 : bootstrap
    • 기능지원 : JUnit 5/ Log4j
  • Mybatis 연결을 위한 객체 3가지
    • SqlSessionFactoryBuilder - build(configxml을 inputStream만들어 전달)
    • SqlSessionFactory - openSession()
    • SqlSession 
      • insert( "mapper의 이름.아이디1", parameterType에 넣어줄 데이터 ) : 무조건 int형으로 return
      • delete("mapper의 이름.아이디2" ,    ) :무조건 int형으로 return
      • update( "mapper의 이름.아이디3",    ) : 무조건 int형으로 return
      • selectOne("mapper의 이름.아이디4" , parameterType에 넣어줄 데이터    ) : <E>
      • selectList( "mapper의 이름.아이디4", parameterType에 넣어줄 데이터 ,    ) : List<E>
      • selectList( "mapper의 이름.아이디5",   ,    ) : List<E>
        • parameterType이 있을경우 전달한데이터 적어주기
  • MyBatis 기능 2가지
    • 주요 DTD(Document Type Definition), xml , 태그 2개 
      • config
<configuration>
        <properties resource= " " />
        <settings><setting name="jdbcTypeForNull" value="NULL"/></settings>
        <typeAliases>
             <typeAlias type="POJO객체fullname" alias="별칭 "/>
             <typeAlias type="kh.semi.jwd.user.model.vo.UserVo" alias="User"/>
             <typeAlias type="kh.semi.jwd.user.model.vo.UserLoginVo" alias="UserLogin"/>
             <typeAlias type="kh.semi.jwd.bum.model.vo.BumVo" alias="Bum"/>
             <typeAlias type="kh.semi.jwd.bum.model.vo.BumLoginVo" alias="BumLogin"/>
        </typeAliases>
        <environments id="jwdPclass(자바객체이름)">
             <environment id= "jwdPclass">
                 <transactionManeager type="JDBC"/>
                 <dataSource type="POOLED">
                        <property name="driver" value="oracle.jdbc.OracleDriver"/>
                        <property name="url" value="${jdbc.url}"/>
                        <property name="username" value="${jdbc.username"/>
                        <property name="password" value="${jdbc.password}"/>
                 </dataSource> 
             </environment>
        </environments>
        <mappers> 
                <mapper resource ="경로/xxx-mapper.xml"/>
                <mapper resource ="경로/xxx-mapper.xml"/>
                이부분에 mapper.xml파일을 등록해야 namespace 인지됨.
        </mappers
<configuration>

 

  • mapper
<mapper namespace = "mapper의 이름">
        <resultMap id="resultMap아이디" type="POJO객체fullname또는별칭">
               <id column="컬럼명1"  property="필드명1">
               <result column="컬럼명2"  property="필드명2">
               <result column="컬럼명3"  property="필드명3">
        </resultMap>
        <insert id="아이디1(기존 메소드명)" parameterType="자바자료형fullname또는 별칭"></insert>
        <delete id="아이디2(기존 메소드명)"></delete>
        <update id="아이디3(기존 메소드명)" [parameterType="자바자료형fullname또는 별칭"]></update>
        <select id="아이디4(기존 메소드명)" resultType="자바자료형fullname또는 별칭"
            [parameterType="자바자료형fullname또는 별칭"]></select>
        <select id="아이디5(기존 메소드명)" resultMap="resultMap 아이디"></select>
</mapper>

 

>>> config 수정시 running을 다시 돌려줘야함.

 

2교시

 

CDATA = Character DATA, 즉 문자형 데이터를 말함.

 

<![CDATA[  ]]> 이렇게 선언하고 안에 문자열을 채워 넣으면 , [ ] 안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다

 

RowNum -paging

 

Dao에 있는 아래 코드를 서비스에 넣어주고

서비스

 

Dao 코드를 아래와같이수정하면 됨.

 

 

3교시

 

참고https://uxicode.tistory.com/entry/%EC%8A%A4%ED%8A%B8%EB%A6%BC-stream-%EC%9D%B4%EB%9E%80

 

 

스트림( stream ) 이란

어허 거참 알다가도 모를듯한 이~ ㅋㅋ 스트림( stream ) 이란 위키에선 아래와 같이 정의하고 있다. 컴퓨터 처리 환경에서 스트림(stream)은 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터

uxicode.tistory.com

<select> 태그 주요 속성

 

flushCache : false인경우, 내보낸다음에도 가지고 있겠다.

                 true인 경우, 내보낸 다음 텅 비우겠다.

 

useCache :

 

timeout

 

statementType    

 


오류!발생! 

 

>> 딕셔너리에 저장될때 대문자로 저장됨.

>> 원래 따옴표안에 써줘야함. 

 

 

>> 자바에서는 따옴표를 쓰고 싶으면 역슬래시 마크를 써줌. 

         하지만 xml상황에서는 없어도 됨.


FlushCache와 useCache

<insert>,<update>,<delete> 태그 주요 속성

 

MyBatis 페이징 처리

 

 

- 빠진 pdf있으니 아이패드 필기 참고!

 

동적SQl

 

-> 아이패드 필기 참고

4교시 -> 흑... 다시 들어봐바 복습하구..

 

-> 설명 다시 듣기

 

 

 

굳이 parameterType을 적지 않아도 처리함.
arrayList vo 모양일때

https://mybatis.org/mybatis-3/ko/dynamic-sql.html 참조

 

 

~점심~

 

5교시

 

이렇게 쓰면 resultMap 사용 안해도 vo에 넣어도 됨.

 

 

 

6교시