mybatis를 사용하기 위해선 spring jdbc + mybatis + mybatis spring
mapper.xml의 저장경로 src/main/resources/mybatis<bean id ="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mapperLocations" value="classpath:/mybatis/*-mapper.xml"></property> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"> </constructor-arg> </bean> root-context.xml에 넣어준다
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Message">
</mapper>
mybatis가변인자를 지원하지 않는다 dao의 매개변수가 여러개가 들어온다면
prefixOverrides ="and"
and 를 지우겠다
mybatis에서 복잡한 검색 trim사용
<select id="selectByMultiCon"
resultType="kh.spring.dto.MessageDTO">
select * from message
<trim prefix="where" prefixOverrides="and">
<!-- prefixOverrides : 접두사를 무효화 시키다.
맨 앞이 and 면 and 를 무효화 시키겠다. -->
<if test="writer !=null">
writer like '%'||#{writer}||'%'
</if>
<if test="message !=null">
and message like '%'||#{message}||'%'
</if>
</trim>
<!-- MyBatis에서는 trim(다듬다) 라는 기능 제공. trim 안에 텍스트가 있어야 동작함 -->
</select>