WEB/Spring

Spring : mybatis 연동

HBean_ 2020. 8. 23. 14:57

<Mybatis>

 

 

정의: 객체지향 언어인 자바의 관계형 DB 프로그래밍을 쉽게 할수 있도록 도와주는 개발 프레임워크

 

특징:

  • 간단한 자바코드로 db 연동 처리
  • 자바코드에서 분리된 sql 명령어 (쿼리) > xml파일에서 관리 (mapper라고 칭함)

 

<활용하기>

 

 

1. pom.xml에 library 추가 [ https://mvnrepository.com/ 여기서 검색 가능 ]

 

  • spring-jdbc (스프링의 JDBC, Spring version과 동일 > log4jdbc 사용)
  • mysql-connector
  • mybatis
  • mybatis-spring (스프링에서 Mybatis 연동을 위한 모듈)
  • spring-test

 

2. mybatis-config.xml 설정 파일 생성 [위치 : Java Resources/src/main/resources/]

 

해당 파일에 아래의 코드 추가 > xml 유효성 체크를 위해 필요

<!DOCTYPE configuration PUBLIC "-//mybatis.org/DTD Config 3.0/EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 

 

*해당 파일에 아래와 같이 별명을 설정할 수 있는 데, 바로 뒤에 나오는 mapper 파일에서 com.web.beans.Emp (java파일) 을 사용할 때, EmpVO라는 짧은 별명으로 대신 사용하겠다는 것을 코드로 적은 것임

 

<configuration>

<typeAliases>

<typeAlias alias="EmpVO" type="com.webcamp.beans.Emp" />

</typeAliases>

</configuration>

 

3. Mapper 생성 : employee-mapper.xml (이름은 상관없음 but mapper라는 단어가 들어간 이름이면 좋음), 쿼리를 추가하는 파일

[위치 : Java Resources/src/main/resources/]

 

해당 코드 추가

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

 

*아래 코드는 예시 코드 : 이런식으로 쿼리를 작성하면 됨

<mapper namespace="Employees">

<select id="Select" parameterType="string" resultType="EmpVO"> SELECT * FROM emp99 </select>

<insert id="Insert" parameterType="EmpVO"> INSERT INTO emp99 (name, salary, designation) VALUES (#{name}, #{salary}, #{designation}) </insert>

</mapper>

 

4. root file 설정 : 어디서 쿼리를 불러오는지, db정보는 무엇인지 기입

 

아래코드 추가하기

 

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName"

value="com.mysql.jdbc.Driver" /> <!--mysql db사용, 다른 db 사용시 변경해야함-->

<property name="url" value="db url" />

<property name="username" value="db 아이디" />

<property name="password" value="db 비밀번호" />

</bean<!--해당 db 정보-->

 

<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:/*-mapper.xml" />

</bean>

 

<bean id="sqlSession"

class="org.mybatis.spring.SqlSessionTemplate"

destroy-method="clearCache">

<constructor-arg name="sqlSessionFactory"

ref="sqlSessionFactory" />

</bean>

 

5. 관련 Dao (+interface), Service(+interface), Controller 생성하기