728x90
sqlSessionFactory - sqlSession을 생성해서 제공
sqlSession - sql 명령을 수행하는데 필요한 메서드 제공
spring 에서 Mybatis 사용하려면
sqlSessionFactoryBean , sqlSessionTemplate (thread-safe) 필요하다.
root-context.xml
<!-- Mysql <-> Mybatis를 연결해주는 객체 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:META-INF/mybatis-configs.xml"/>
<property name="mapperLocations" value="classpath*:mapper/*Mapper.xml"/>
</bean>
<!-- sql session Factory :: DB 사용이 끝나면 close > -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache" >
<constructor-arg name ="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
사용 예시 보기

mybatis-configs.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>
<!-- 별명 짓기 [ 별명: BoardDto , java파일 : com.test.ch4.domain.BoardDto ] -->
<!-- 별명은 대소문자 구분X -->
<typeAliases>
<typeAlias alias="BoardDto" type="com.test.ch4.domain.BoardDto"/>
</typeAliases>
</configuration>
<?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="com.test.ch4.dao.BoardMapper">
<select id="count" resultType="int">
SELECT count(*) FROM board
</select>
<delete id="deleteAll">
DELETE FROM board
</delete>
<delete id="delete" parameterType="map">
DELETE FROM board WHERE bno = #{bno} and writer = #{writer}
</delete>
<insert id="insert" parameterType="BoardDto">
INSERT INTO board
(title, content, writer)
VALUES
(#{title}, #{content}, #{writer})
</insert>
<select id="selectAll" resultType="BoardDto">
SELECT bno, title, content, writer, view_cnt, comment_cnt, reg_date
FROM board
ORDER BY reg_date DESC, bno DESC
</select>
<select id="select" parameterType="int" resultType="BoardDto">
SELECT bno, title, content, writer
, view_cnt, comment_cnt, reg_date
FROM board
WHERE bno = #{bno}
</select>
<select id="selectPage" parameterType="map" resultType="BoardDto">
SELECT bno, title, content, writer, view_cnt, comment_cnt, reg_date
FROM board
ORDER BY reg_date DESC, bno DESC
LIMIT #{from}, #{size}
</select>
<update id="update" parameterType="BoardDto">
UPDATE board
SET title = #{title}
, content = #{content}
, up_date = now()
WHERE bno = #{bno}
</update>
<update id="increaseViewCnt" parameterType="int">
UPDATE board
SET view_cnt = view_cnt + 1
WHERE bno = #{bno}
</update>
</mapper>
SqlSession 주요 메서드
- insert , delete , update
- selectOne , selectList ,
- selectMap(String statement, String keyCol )
- selectMap(String statement, String keyCol , Object parameter )
728x90