2021.11.16 / 14:28
DB¿Í ¿¬µ¿Çϱâ(MyBatis)
MyData
Ãßõ ¼ö 204
DB¿Í ¿¬µ¿Çϱâ(MyBatis)
- ÀÌ ºí·Î±×ÀÇ ±ÛÀº JAVA DB ¿£Áö´Ï¾î¸µ °úÁ¤ ¼ö¾÷À» À§ÇØ ÀÛ¼ºµÈ ±ÛÀÔ´Ï´Ù.
- À̹ÌÁö·Î ÀÎÇØ ±ÛÀÌ ±æ¾îÁú ¼ö ÀÖ½À´Ï´Ù.
ÀÇÁ¸¼º Ãß°¡Çϱâ
- MyBatis ¿¬µ¿¿¡ ÇÊ¿äÇÑ ÀÇÁ¸¼ºÀ» pom.xml¿¡¼ dependencies ÅÂ±× ¾È¿¡ Ãß°¡ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!-- mybatis ÀÇÁ¸¼º Ãß°¡ --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- mybatis-spring ÀÇÁ¸¼º Ãß°¡ --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!-- mysql-connector-java ÀÇÁ¸¼º Ãß°¡ --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <!-- spring-jdbc Ãß°¡ --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework-version}</version> </dependency> | cs |
- ¼³Ä¡µÈ MySQL ¹öÀüÀÌ 8ÀÌ»óÀ̶ó mysql-connector-javaÀÇ ¹öÀüÀ» 8.0.11·Î ¼³Á¤Çß½À´Ï´Ù.
MyBatis °ü·Ã Á¤º¸ ¼³Á¤Çϱâ - root-context.xml
- MyBatis °ü·Ã Á¤º¸¸¦ ¼³Á¤Çϱâ À§ÇØ root-context.xml ÆÄÀÏ¿¡ ´ÙÀ½ Ç׸ñµéÀ» Ãß°¡ÇÕ´Ï´Ù.
³×ÀÓ½ºÆäÀ̽º Ãß°¡
- root-context.xml ÆÄÀÏÀ» ¿¾î namespace ÅÇÀ» Ŭ¸¯ÇÕ´Ï´Ù.
- aop, beans, context, jdbc, mybatis-spring ¼±Åà ÈÄ ÀúÀåÇÕ´Ï´Ù.
MySQL Á¤º¸ Ãß°¡
- ÇØ´ç ÇÁ·ÎÁ§Æ®¿¡¼ »ç¿ëÇÒ ½ºÅ°¸¶À̸§(DB¸í)°ú MySQL °èÁ¤¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÏ¿© Àû¿ëÇÏ¸é µË´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 | <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- MySQL ¹öÀü¿¡ µû¶ó driverClassNameÀÇ value°ªÀÌ ´Þ¶óÁü ¾Æ·¡ ÄÚµå´Â Mysql 8±âÁØ --> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <!-- MySQL ¹öÀüÀÌ 6ÀÎ °æ¿ì ¾Æ·¡ ÄÚµå ¹Ý¿µ --> <!-- <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property> --> <property name="url" value="jdbc:mysql://localhost:3306/½ºÅ°¸¶À̸§?useSSL=false&serverTimezone=Asia/Seoul"> </property> <property name="username" value="MySQL°èÁ¤¾ÆÀ̵ð"></property> <property name="password" value="MySQL°èÁ¤ºñ¹ø"></property> </bean> | cs |
- ¿¹½Ã
1 2 3 4 5 6 7 8 9 | <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/spring?useSSL=false&serverTimezone=UTC"> </property> <property name="username" value="green"></property> <property name="password" value="cjgreen"></property> </bean> | cs |
Mapper ¼³Á¤
- mapperLocationÀÇ value¿¡ °æ·Î´Â src/main/resources Æú´õÀÇ ÇÏÀ§ °æ·ÎÀÔ´Ï´Ù.
- °æ·Î¿¡ mappers¸¦ ÀÔ·ÂÇß´Ù¸é resources¿¡ mappers Æú´õ¸¦ »ý¼ºÇÏ¸é µË´Ï´Ù.
1 2 3 4 5 | <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:°æ·Î/*Mapper.xml"></property> </bean> <mybatis-spring:scan base-package="¸ÊÇÎÇÒÆÐÅ°ÁöÀ̸§"/> | cs |
- ¿¹½Ã
1 2 3 4 5 | <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"></property> </bean> <mybatis-spring:scan base-package="kr.green.spring.dao"/> | cs |
MyBatis ¿¬µ¿ È®ÀÎÇϱâ
- ´ÙÀ½ ÀÛ¾÷Àº ¿À·ÎÁö ¿¬µ¿À» È®ÀÎÇϱâ À§ÇÑ ÀÛ¾÷À¸·Î ÃßÈÄ ¸Þ¼Òµå°¡ »èÁ¦µÇ°Å³ª ¼öÁ¤µÉ ¼ö ÀÖ½À´Ï´Ù.
MemberMapper ¼³Á¤
- mappers Æú´õ¿¡ MemberMapper.xml ÆÄÀÏ »ý¼º ÈÄ ¾Æ·¡ ¿¹½Ã ÄÚµå º¹»çÇÏ¿© ºÙ¿©³Ö½À´Ï´Ù.
1 2 3 4 5 6 7 8 9 | <?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="kr.green.spring.dao.MemberDAO"> <select id="getEmail" resultType="String"> select email from member where id = #{id} </select> </mapper> | cs |
MemberDAO ¼³Á¤
- kr.green.spring.dao ÆÐÅ°Áö »ý¼º ÈÄ MemberDAO ÀÎÅÍÆäÀ̽º »ý¼º ÈÄ ´ÙÀ½ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 | package kr.green.spring.dao; import org.apache.ibatis.annotations.Param; public interface MemberDAO { public String getEmail(@Param("id")String id); } | cs |
MemberService ¼³Á¤
- kr.green.spring.service ÆÐÅ°Áö »ý¼º ÈÄ MemberService ÀÎÅÍÆäÀ̽º¿Í MemberServiceImp »ý¼º ÈÄ ´ÙÀ½ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
- MemberService ÀÎÅÍÆäÀ̽º
1 2 3 4 5 6 | package kr.green.spring.service; public interface MemberService { public String getEmail(String id); } | cs |
- MemberServiceImp Ŭ·¡½º
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package kr.green.spring.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import kr.green.spring.dao.MemberDAO; @Service public class MemberServiceImp implements MemberService { @Autowired MemberDAO memberDao; @Override public String getEmail(String id) { return memberDao.getEmail(id); } } | cs |
HomeController ¼³Á¤
- HomeController¿¡ ´ÙÀ½ ¸Þ¼Òµå¿Í ¸â¹ö º¯¼ö¸¦ Ãß°¡ÇÕ´Ï´Ù. id¿¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿ "12345678"Àº ½ÇÁ¦ DB¿¡ Àִ ȸ¿ø Á¤º¸À̾î¾ß ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 | @Autowired MemberService memberService; @RequestMapping(value="/") public ModelAndView main(ModelAndView mv) throws Exception{ mv.setViewName("/main/home"); mv.addObject("setHeader", "ŸÀÏÁîÅ×½ºÆ®"); System.out.println(memberService.getEmail("12345678")); return mv; } | cs |
- http://localhost:8080/spring/ ½ÇÇà ÈÄ ÄܼÖâ¿¡ À̸ÞÀÏÀÌ Ãâ·ÂµÇ´ÂÁö È®ÀÎÇÏ¸é µË´Ï´Ù.
¼ö°íÇϼ̽À´Ï´Ù.!!
Ãâó: https://stajun.tistory.com/entry/½ºÇÁ¸µ-ÇÁ·¹ÀÓ¿öÅ©4-DB-¿¬µ¿ÇϱâMyBatis [³»¼þÀÌ]