22.05.18 수업_ spring(4 차시)_myBatis작성(2)
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
- 주요 DTD(Document Type Definition), xml , 태그 2개
<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교시 -> 흑... 다시 들어봐바 복습하구..
-> 설명 다시 듣기
https://mybatis.org/mybatis-3/ko/dynamic-sql.html 참조
~점심~
5교시
이렇게 쓰면 resultMap 사용 안해도 vo에 넣어도 됨.