일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Tomcat
- checkbox
- 부스트코스
- egov
- MariaDB
- JAXBContext
- 기출문제
- INSERT
- query
- jsp
- mybatis
- jdbc
- vue.js
- spring
- JQuery
- mysql
- 구멍가게코딩단
- bulkinsert
- JSON
- 정보처리산업기사
- 오라클
- 마스킹
- vscode tutorial
- NoSQL
- swipe 배너
- insertAll
- Ajax
- vue Carousel
- github
- java
- Today
- Total
개발새발
[egovFrameWork] mybatis & ibatis 본문
egov를 이용해서 게시판 템플릿 프로젝트를 만들었다.
게시판템플릿은 mybatis ibatis 모두 사용할수 있게 만들어져있지만
기본적으로 ibatis를 이용해서 게시판이 만들어져있고 나는 mybatis를 사용하려고 했다.
1. MyBatis?
- 기존 JDBC코드는 Connection과 Statement를 통해 쿼리를 전송하면 연결받고 Close하는 방식을 사용한다.
-> 이를 프레임워크화 하여 캡슐화 한것이 mybatis.
- JDBC 코드를 간편하게 사용할 수 있고 SQL문장과 프로그래밍 코드가 분리되어 있어 사용하는데 편리.
- 라이브러리를 통해 매개변수를 전달하고 결과를 추출하는 일을 간단히 처리가능.
2. iBatis -> MyBatis 이름 변경?
- Apache Project 팀이 iBatis를 ~2.3까지 개발 했음.
이후 해당 팀이 google code 팀으로 이동하면서, 이름을 MyBatis로 변경해 2.5부터 개발 진행중.
3. 차이점
1) Java 요구사항 차이점
- iBatis : JDK 1.4 이상 가능
- Mybatis : JDK 1.5 이상 가능
2) 패키지 내부 구조 변경
- iBatis : com.ibatis.*
- Mybatis : org.apache.ibatis.*
3) sqlMap.xml 내부구조 변경
- iBatis : parameterMap
- MyBatis : parameterType (dtd 변경 - http://mybatis.org/dtd/mybatis-3-mapper.dtd)
* dtd = Document Type Definition
4) pom.xml 설정
1
2
3
4
5
|
<dependency>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
</dependency>
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
|
(근데 egov에서는 pom.xml에 표준프레임워크 실행환경으로 추가되어 있는 dependency에서
i,mybatis를 알아서 처리해주는 듯허다,, )
-> 왜냐하면,, pom.xml에 i,mybatis 관련 dependency가 없기 때문,,
5) 네임스페이스 방식 변경
- iBatis : <sqlMap namespace="Sample">
- MyBatis : <mapper namespace = "myBatis.mapper.UserMapper">egovframework.example.sample.service.impl.SampleMapper">
- 네임스페이스 사용은 필수, userStatementNameSpace 설정 제거 <- 이 설정은 어디서 제거 하는데? 뭔말이햐,,? 이건 모르게따,,
ex)
요기까지 reference
[egov ibatis를 mybatis로 변경]
믄저,,
mappers 폴더 밑에 있는 EgovSample_Sample_SQL.xml은 mybatis 문법으로 된 xml이고
sample 폴더 밑에 있는 EgovSample_Sample_SQL.xml은 ibatis 문법으로 된 xml이다.
그런데 yo 프로젝트에서 ibatis sql을 계속 읽는다면 mybatis 문법으로 된 sql을 읽어달라고 변경해야겠지,,
그 변경은,, 두둥..탁!
src/main/resoures -> sqlmap -> exmple 폴더 밑에 있는 sql-map-config.xml 에서 바꿔준다.
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- <sqlMap resource="egovframework/sqlmap/example/sample/EgovSample_Sample_SQL.xml"/> -->
</sqlMapConfig>
|
주석처리 되어 있는게 원래 있었던 "ibatis sql로 읽어주셈!!" 이다.
근데 주석 풀려있는게 mapper 밑에 mybatis sql로 읽어주세요!!
그 다음,,
ibatis를 쓸땐 sampleDAO를 이용하도록,,
mybatis를 쓸 땐 sampleMapper를 이용하도록,, 구조가 되어있다.
그렇기때문에 기존에 지금 주석처리 되어 있는 곳이 활성화 되어 있었는데
난 mybatis를 사용할 것이기 때문에 sampleMapper를 사용하도록 주석처리를 바꿔주고
변수명을 일일이 다 바꿔주지 않게 sampleDAO로 만들어(져있었따,,)
- 끗 -
'Framework > egovframework' 카테고리의 다른 글
[2020.02.18] 주식이동평균, 전일대비, 등락률 (0) | 2020.02.18 |
---|---|
[egovFrameWork] 한글검색안됨 (0) | 2020.02.12 |
[2020.01.30] Excel upload 후 db저장 (23) | 2020.01.30 |