MyBatis

MyBatis

SQL๊ณผ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ๋งคํ•‘ํ•˜๋Š” ์‚ฌ์ƒ์—์„œ ๊ฐœ๋ฐœ๋œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ ‘๊ทผ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ

  • SQL์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
  • ์ž๋ฐ” ๊ฐ์ฒด์™€ SQL ์ž…์ถœ๋ ฅ ๊ฐ’์˜ ๋ฐ”์ธ๋”ฉ

์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  1. MyBatis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • MyBatis ์„ค์ • ํŒŒ์ผ
    • SqlSessionFactoryBuilder : MyBatis ์„ค์ • ํŒŒ์ผ์„ ๋ฐ”ํƒ•์œผ๋กœ SqlSessionFactory ์ƒ์„ฑ
    • SqlSessionFactory : sqlSession ์ƒ์„ฑ์„ ์œ„ํ•œ ์ปดํฌ๋„ŒํŠธ
    • SqlSession : SQL ๋ฐœํ–‰๊ณผ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ
    • Mapper ์ธํ„ฐํŽ˜์ด์Šค : ๋งคํ•‘ ํŒŒ์ผ๊ณผ SQL์— ๋Œ€์‘ํ•˜๋Š” ์ž๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค
    • ๋งคํ•‘ ํŒŒ์ผ : SQL๊ณผ OR ๋งคํ•‘์„ XML์— ํŒŒ์ผ ๊ธฐ์ˆ 
  2. MyBatis-Spring ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์—ฐ๋™
    • org.mybatis.spring.SqlSessionTemplate : sqlSession ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„

ํ•„์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • spring-jdbc : ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” JDBC ๋ž˜ํ•‘ ๋ชจ๋“ˆ
  • MyBatis-Spring : ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์˜ ์—ฐ๋™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • MyBatis : ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ํ”„๋ ˆ์ž„์›Œํฌ ๋ชจ๋“ˆ
  • ์ปค๋„ฅ์…˜ ํ’€ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : commons-dbcp
  • ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค JDBC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : mysql-connector-java

์—ฐ๋™ ์„ค์ • - ์˜์กด ๊ด€๊ณ„ ์„ค์ •

  1. ์ปค๋„ฅ์…˜ ํ’€์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์†Œ์Šค ๋นˆ ๋“ฑ๋ก
  2. ์Šคํ”„๋ง์˜ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์ž์˜ ๋นˆ ๋“ฑ๋ก
  3. MyBatis์˜ SqlSessopmFactory ๋นˆ ๋“ฑ๋ก
  4. MyBatis-Spring์˜ SqlSessionTemplate ๋นˆ ๋“ฑ๋ก

MyBatis ์—ฐ๋™ ์„ค์ •

  1. ๋นˆ ๋“ฑ๋ก ๋น› ์˜์กด ๊ด€๊ณ„ ์„ค์ •
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/springdb?
    allowPublicKeyRetrieval=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;
    useSSL=false&amp;serverTimezone=UTC" />
    <property name="username" value="spring" />
    <property name="password" value="passwd" />
    <property name="maxActive" value="5" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
    <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
    <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
  1. mapper.xml ์ƒ์„ฑ
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
    <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>
</bean>
  1. mybatis-config.xml ์„ค์ •
  • MyBatis์˜ ๊ณตํ†ต์ ์ธ ์„ค์ •์„ ์ง€์ •ํ•˜๋Š” 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>
    <typeAliases>
        <package name="org.tukorea.myweb.domain" />
    </typeAliases>
</configuration>

homebdy
homebdy ๊ฐœ๋ฐœ์— ์ด์ œ ๋ง‰ ๋ฐœ ๋‹ด๊ทผ ์‚ฌ๋žŒ. ๊ฐœ๋ฐœ์— ์ด์ œ ๋ง‰ ๋ฐœ ๋‹ด๊ทผ ์‚ฌ๋žŒ. ๊ฐœ๋ฐœ์— ์ด์ œ ๋ง‰ ๋ฐœ ๋‹ด๊ทผ ์‚ฌ๋žŒ. ๊ฐœ๋ฐœ์— ์ด์ œ ๋ง‰ ๋ฐœ ๋‹ด๊ทผ ์‚ฌ๋žŒ.
comments powered by Disqus