1 / 10

MyBatis

MyBatis. ㅇ 스프링 설정파일 (dispatcher-servlet.xml). <?xml version="1.0" encoding="UTF-8"?> <!– 기본 설정 생략 --> < bean id=" sqlSessionFactory " class=" org.mybatis.spring.SqlSessionFactoryBean "> < property name=" dataSource " ref=" dataSource " />

gaerwn
Download Presentation

MyBatis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MyBatis ㅇ 스프링 설정파일 (dispatcher-servlet.xml) <?xml version="1.0" encoding="UTF-8"?> <!– 기본 설정 생략 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="/WEB-INF/MapperConfig.xml" /> </bean> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> ㆍdispatcher-servlet.xml 에 MyBatis를 사용하기 위한설정 선언 (SqlSessionFactoryBean / SqlSessionTemplate) ㆍMyBatis설정 XML 파일의 위치 지정

  2. MyBatis ㅇ 스프링 설정파일 (dispatcher-servlet.xml) <?xml version="1.0" encoding="UTF-8"?> <!– 기본 설정 생략 --> <bean id="memberDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value=“edu.spring.board.dao.MemberDao" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="sqlSessionTemplate" ref="sqlSessionTemplate" /> </bean> ㆍSpring Jdbc Template / iBatis Template 은 Dao 클래스에서 직접 Query 가 작성되어 있는 XML 파일을 호출하였지만 MyBatis는 XML이 Dao 클래스(인터페이스)를 구현하는 방식으로 사용  Dao 클래스 내부에 Query를 호출하는 구문이 없음 ㆍDao 를 모두 Bean 으로 등록해야 하는 번거로움.. (다른 구현 방식도 가능)

  3. MyBatis ㅇMyBatis설정 파일 (MapperConfig.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> <settings> <setting name="mapUnderscoreToCamelCase" value="true" /> </settings> <typeAliases> <typeAlias alias="String" type="java.lang.String" /> </typeAliases> <mappers> <mapper resource="edu/spring/board/dao/MemberDao.xml" /> </mappers> </configuration> MyBatis실행시 적용될 옵션 선언 사용할 클래스 단축명으로 미리 지정 각 sqlMap파일의 위치 지정 ㆍMyBatis 설정 XML ㆍ옵션 지정 ㆍ사용할Query(SqlMap) 파일의 위치를 지정

  4. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) <?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=“edu.spring.board.dao.MemberDao"> <select id="selectMember" parameterType="java.util.Map" resultType="java.util.Map"> // Query </select> <insert id="insertMember" parameterType="edu.spring.board.dao.MemberDto"> // Query </insert> </mapper> iBatis는 namespace가 선택사항 이지만 MyBatis에서는 필수사항 구현할 Dao 클래스를 지정 select / insert / update / delete 업무 성격에 따라 엘리먼트 및 SQL문 작성

  5. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) - select <select id="selectMember" resultType="java.util.Map" parameterType="java.util.Map"> SELECT ID, PW, NAME, GRADE FROM MEMBER WHERE 1 = 1 AND ID = #{id} </select> ㆍ조회시 사용하는 태그 ㆍ조회 결과를 어떤 형태로 받을 것인지 resultType과 조회시 입력하는 데이터가 어떤 형태인지 parameterType을 지정해야 됨 ㆍ입력되는 데이터는 parameterType에 저장된 key를 #{} 기호를 사용 ex) Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap(“inputId”, “seorab”); 위와 같이 입력된 클래스를 parameterType으로 지정한 경우 #{inputId} 로 사용

  6. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) - insert <insert id=“insertMember" parameterType="java.util.Map"> INSERT INTO MEMBER VALUES ( #{id}, #{pw}, #{name}, #{grade}, DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') ) </select> ㆍ삽입시 사용하는 태그 ㆍ입력하는 데이터가 어떤 형태인지 parameterType을 지정해야 됨 ㆍ삽입된 결과는 항상 Integer 형태로 반환  resultType사용 불가

  7. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) - update <update id=“updateMember" parameterType="java.util.Map"> UPDATE MEMBER SET ID = #{id}, PW = #{pw}, NAME = #{name}, GRADE = #{grade} , ACCEPT_DATE = DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') WHERE ID = #{id} </update> ㆍ수정시 사용하는 태그 ㆍ입력하는 데이터가 어떤 형태인지 parameterType을 지정해야 됨 ㆍ수정된 결과는 항상 Integer 형태로 반환  resultType사용 불가

  8. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) - delete <delete id=“deleteMember" parameterType="java.util.Map"> DELETE FROM MEMBER WHERE ID = #{id} </update> ㆍ삭제시 사용하는 태그 ㆍ입력하는 데이터가 어떤 형태인지 parameterType을 지정해야 됨 ㆍ삭제된 결과는 항상 Integer 형태로 반환  resultType사용 불가

  9. MyBatis ㅇMyBatisSql Map 파일 (지정 파일명.xml) - Dynamic SQL <select id="selectMember" resultType="java.util.Map" parameterType="java.util.Map"> SELECT ID, PW, NAME, GRADE FROM MEMBER WHERE 1 = 1 <if test=“id != null and id == ‘’”> AND ID = #{id} </if> </select> ㆍ조건문을지정할때 사용하는 태그 ㆍselect / insert / update / delete 모든 태그 내부에 지정 가능 ㆍ문법 : http://mybatis.github.io/mybatis-3/ko/참조

  10. MyBatis ㅇMyBatis사용 - Dao 클래스 public interfaceMemberDao { public intinsertMember(MemberDtomemberDto); public List<Map<String, Object>> selectMember(Map<String, Object> paramMap); } - Service 클래스 @Service public class MemberService { @Autowired private MemberDaomemberDao; public boolean join(MemberDtomemberDto) { intresult = memberDao.insertMember(memberDto); return result > 0 ? true : false; } …. 생략 …. ㆍDao 인터페이스로 선언 ㆍService 에서 Dao를 호출하면서 Sql Map XML과 자동 매핑

More Related