<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
root-context.xml 파일 내용이다
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- 히카리 커넥션풀 빈 등록 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="" />
<property name="password" value="" />
</bean>
<!-- 히카리 데이터소스 빈 등록 -->
<bean id="ds" class="com.zaxxer.hikari.HikariDataSource">
<constructor-arg ref="hikariConfig"/>
</bean>
<!-- 데이터소스 마이바티스에 등록 및 xml 위치 설정 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds"/>
<property name="mapperLocations" value="classpath:/mappers/**/*Mapper.xml"/>
</bean>
<!-- 마이바티스 xml파일과 dao빈 연결 -->
<mybatis-spring:scan base-package="com.care.root.member.dao"/>
<!-- 롤백기능을 담았다고 한다 ,트랜잭션 -->
<bean name="txMgr"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds" />
</bean>
</beans>
mybatis-spring 에러가 발생하는 이유는 하단 namespace에 mybatis 스프링을 추가 시키지 않았기 때문이다
체크해줘서 스프링을 추가시켜주면 에러가 해결된다
<?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.care.root.member.dao.MemberDAO">
<resultMap type="com.care.root.member.dto.MemberDTO" id="member">
<result property="id" column="id" />
<result property="name" column="name" />
<!-- property는 자바의 멤버변수, column은 sql의 컬럼 -->
<!-- 어떤 테이블이더라도 resultset 즉 결과값을 맞춰주는 것이기때문에 범용적이라고예상 -->
</resultMap>
<insert id="insertMember">
insert into test_mybatis values(#{id},#{name})
</insert>
<select id="memberView" resultMap="member">
select * from test_mybatis
</select>