평행코드

<Spring legacy> Mybatis DB연결하기 본문

Spring

<Spring legacy> Mybatis DB연결하기

나의 오류는 누군가 겪었던 오류 2023. 12. 10. 19:53
root-context.xml 파일

 

3개의 DB연결에 필요한 bean을 등록함

 

1. Data연결정보를 저장하는 클래스 -> BasicDataSource클래스

2. SqlSession을 생성해주는 클래스 -> SqlSessionFactoryBean클래스

3. SqlSession 클래스 -> SqlSessionTemplate클래스

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/> 
    <property name="username" value="spring"/> <property name="password" value="spring"/> 
</bean> 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="configLocation" value="classpath:mybatis-config.xml"/> 
    <property name="mapperLocations" value="classpath:mappers//*.xml"/> 
</bean> 
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> 
	<constructor-arg index="0" ref="sqlSessionFactory"/> 
</bean>

 

src/main/resources에 mappers폴더, mybatis-config.xml파일을 생성해준다.

생성시 템플릿이 없을경우,

 

Preferences → XML Catalog → Add → Location, key에 입력

Location : http://mybatis.org/dtd/mybatis-3-config.dtd

key : //mybatis.org/DTD Config 3.0//EN

Location : http://mybatis.org/dtd/mybatis-3-mapper.dtd

key : //mybatis.org/DTD Mapper 3.0//EN

 

위에서 템플릿을 만들어 준 후 mybatis-config.xml, ~mapper.xml파일을

알맞은위치에 생성해준다.

 

mybatis-config.xml 파일에 아래 예시처럼 입력해 준다.

<configuration> 
	<settings> 
		<setting name="jdbcTypeForNull" value="NULL"/> 
	</settings> 
	<typeAliases> 
        <typeAlias type="com.bs.spring.demo.model.dto.Demo" alias="demo"/> 
        <typeAlias type="com.bs.spring.common.StringArrayTypeHandler" alias="strArr"/> 
        <typeAlias type="com.bs.spring.common.StringListTypeHandler" alias="strList"/> 
        <typeAlias type="com.bs.spring.member.model.dto.Member" alias="member"/> 
    </typeAliases>
</configuration>

~mapper.xml파일 예시

 

<mapper namespace="demo">

    <resultMap id="demoMap" type="demo">
        <!-- <id column="devno" property=""/>
        <result column="devname" property="devName"/>
        <result column="devage" property="devAge"/>
        <result column="devemail" property="devEmail"/>
        <result column="devgender" property="devGender"/> -->
        <result column="devlang" property="devLang" typeHandler="strArr"/>
    </resultMap>
    <insert id="insertDemo" parameterType="demo">
        INSERT INTO DEV VALUES(SEQ_DEV_NO.NEXTVAL, #{devName}, #{devAge},
         #{devEmail}, #{devGender}, 
         <foreach item="lang" collection="devLang" open="'" close="'" separator=",">${lang}</foreach>)
    </insert>
    <select id="selectDemoList" resultMap="demoMap">
        SELECT * FROM DEV
    </select>

    <select id="selectDemoByNo" parameterType="_int"
    resultMap="demoMap">
        SELECT * FROM DEV WHERE DEVNO=${devNo}
    </select>

    <update id="updateDemo" parameterType="demo">
        UPDATE DEV SET DEVNAME=#{devName}, 
        DEVAGE=#{devAge}, DEVEMAIL=#{devEmail}, 
        DEVGENDER=#{devGender},
        DEVLANG=#{devLang, typeHandler=strArr} 
        WHERE DEVNO=${devNo}
    </update>

</mapper>

 

'Spring' 카테고리의 다른 글

<Spring> bean validator 구현하는 방법  (1) 2023.12.11
<Spring> 로그 남기기  (2) 2023.12.11
<Spring legacy> Model  (2) 2023.12.07
스프링 맵핑메소드와 매개변수  (2) 2023.12.05
<Spring legacy> 개발환경구축  (0) 2023.12.05