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>
'☕Java > Spring' 카테고리의 다른 글
[20210707] Spring Web MVC (0) | 2021.07.07 |
---|---|
[20210706] Spring Framework의 AOP (0) | 2021.07.06 |
[20210702] Spring JDBC 예제 (0) | 2021.07.02 |
[20210701] 스프링 프로젝트 생성하기 (0) | 2021.07.01 |
[20210630] 스프링 프레임워크 (0) | 2021.06.30 |