1. 라이브러리 등록
- mvnrepository
mvnrepository.com 에서 mybatis를 검색한다.
클릭하면 다음과 같이 버전들이 나온다. 사용하고자 하는 버전을 선택한다.
버전을 선택하면 다음과 같이 라이브러리 상세 정보가 나오는데 하단의 Maven에 있는 구문을 복사한다.
pom.xml에 해당 구문을 붙여넣기한다.
다른 라이브러리도 동일하게 pom.xml에 등록하면 된다.
2. pom.xml 작성
pom.xml의 <dependencies> 안에 다음과 같이 추가한다.
<!-- 1. MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- 2. MyBatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.4</version>
</dependency>
<!-- 3. Spring-JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- 4. commons-dbcp -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.7.0</version>
</dependency>
<!-- 5. OJDBC6 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
* DBCP란?
- DataBase Connection Pool 로 DB에 연결하는 Connection 객체들을 Pool에 미리 생성해 놓고 요청이 들어오면 Connection 객체를 꺼내어 빌려주고 작업이 끝나면 Pool에 반납하는 방식
3. root-context.xml 작성
MyBatis의 사용을 위해 root-context.xml을 작성한다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="SPRING" />
<property name="password" value="java" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="/WEB-INF/config/sqlConfig.xml" />
<property name="mapperLocations" value="classpath:/sqlMap/*-mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" >
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
</beans>
org.apache.commons.dbcp2.BasicDataSource | 데이터베이스 연동을 위한 정보를 설정하는 클래스 |
org.mybatis.spring.SqlSessionFactoryBean | 데이터베이스 정보를 설정하고 config 파일, mapper 파일 등의 경로를 설정하여 SqlSession 객체를 생성하는 클래스 |
org.mybatis.spring.SqlSessionTemplate | DAO에서 데이터베이스와 연결할 때 사용하는 클래스 |
BasicDataSource | - driverClassName : 연결할 DB의 드라이버 - url : 연결할 DB의 주소 - username : DB 사용자명 - password : DB 사용자의 비밀번호 |
SqlSessionFactoryBean | - dataSource : BasicDataSource 클래스 빈 - mapperLocations : mapper xml 파일의 경로 - configLocation : config.xml 파일의 경로 |
SqlSessionTemplate | - 생성자 파라미터 (constructor-arg) : 0번째 - SqlSessionFactoryBean 클래스 빈 |
4. src/main/webapp/WEB-INF/config/sqlConfig.xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
<typeAliases>
<typeAlias type="kr.or.ddit.vo.MemberVO" alias="memVo" />
</typeAliases>
</configuration>
* jdbcTypeForNull
- parameterType으로 넘어온 데이터 중 null이 있을 경우 데이터베이스에도 null로 삽입
* mapUnderscoreToCamelCase
- 뱀 표기법(snake case; book_id, user_id 등)를 낙타 표기법(camel case; bookId, userId 등)로 자동 변환
5. Java Resources/src/main/resources/sqlMap/member-mapper.xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">
<select id="login" parameterType="memVo" resultType="memVo">
SELECT MEM_ID, MEM_PASS, MEM_NAME, TO_CHAR(MEM_BIR, 'yyyy-MM-dd') MEM_BIR, MEM_GEN
FROM MEMBER
WHERE MEM_ID = #{memId}
AND MEM_PASS = #{memPass}
</select>
<insert id="signup" parameterType="memVo">
INSERT INTO MEMBER (MEM_ID
,MEM_PASS
,MEM_NAME
,MEM_BIR
,MEM_GEN)
VALUES (#{memId}
,#{memPass}
,#{memName}
,#{memBir}
,#{memGen})
</insert>
<update id="update" parameterType="memVo">
UPDATE MEMBER SET MEM_PASS = #{memPass},
MEM_NAME = #{memName},
MEM_BIR = #{memBir},
MEM_GEN = #{memGen}
WHERE MEM_ID = #{memId}
</update>
<delete id="withdrawal" parameterType="String">
DELETE FROM MEMBER
WHERE MEM_ID = #{memId}
</delete>
</mapper>
'Java > Spring Framework' 카테고리의 다른 글
[Spring Framework] Spring Legacy Project의 xml 파일들 (0) | 2023.01.20 |
---|---|
[Spring Framework] 핵심 개념 (0) | 2023.01.20 |
[Spring Framework] Eclipse 스프링 STS 설정하기 (0) | 2023.01.19 |
[Spring Framework] @RequestParam 과 @ModelAttribute (0) | 2023.01.15 |
[Spring Framework] 어노테이션을 이용한 페이지 구현 (0) | 2023.01.15 |