☕Java/Spring

[20210705] MyBatis

2021. 7. 5. 17:46

MyBatis를 이용하면 Spring Framework에서 데이터베이스 접속 정보나 SQL문을 쉽게 변경할 수 있다. 

.properties 확장자를 가지는 속성 파일에는 드라이버와 접속 정보를, mapper.xml에는 사용자가 정의한 SQL문을, SqlMapConfig.xml에는 SQL 매핑에 대한 환경설정 정보를 담는다.

속성 파일의 구조는 다음과 같다.

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost
username=사용자이름
password=비밀번호

mapper.xml 파일 구조는 다음과 같다.

<!--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=" ">
	<select id="selectAll" resultType="DeptDTO">
		select * from dept
	</select>
	<select id="selectOneByDept" resultType="DeptDTO">
		select * from dept where deptno=#{deptno}
	</select>
	<insert id="insertOneByDept" parameterType="DeptDTO">
		insert into dept(deptno, dname, loc) values(#{deptno}, #{dname}, #{loc})
	</insert>
	<update id="updateOneByDept" parameterType="DeptDTO">
		update dept set dname= #{dname}, loc=#{loc} where deptno=#{deptno}
	</update>
	<delete id="deleteOneByDept" parameterType="int">
		delete from dept where deptno=#{deptno}
	</delete>
</mapper>

SqlMapConfig.xml 파일 구조는 다음과 같다.

<!--SqlMapConfig.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>
	<properties resource="resource/db.properties" />
	<typeAliases>
		<typeAlias type="spring_app12.dto.DeptDTO" alias="DeptDto"/>
	</typeAliases>
	<environments default="dev">
		<environment id="dev">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${url}" />
				<property name="username" value="${username}"/>
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="resource/mapper.xml"></mapper>
	</mappers>
</configuration>