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

+ Recent posts