Mybatis


-생성과정

  1. 기본프로젝트 생성(3단계 패키지)
    kr.co.gudi -> 첫 실행

  2. web.xml 확인
    -설정파일 위치, 한글깨짐 방지 -> 실행

    • 한글깨짐 방지
      <filter>
      		<filter-name>encodingFilter</filter-name>
      		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      		<init-param>
      			<param-name>encoding</param-name>
      			<param-value>UTF-8</param-value>
      		</init-param>
      		<init-param>
      			<param-name>forceEncoding</param-name>
      			<param-value>true</param-value>
      		</init-param>
      	</filter>
      	<filter-mapping>
      		<filter-name>encodingFilter</filter-name>
      		<url-pattern>/*</url-pattern>
      	</filter-mapping>
 
3. 버전변경 (project facet, pom.xml)
java -1.8 / 4.3.14.RELEASE
plugin -3.7.0 / 1.8

4. 패키지, 클래스 생성 (Controller,Service) -> 실행

5. 라이브러리 추가
-mariadb-jdbc / commons-dbcp
-mybatis / spring-jdbc / mybatis-spring
- pom.xml
```java
<!-- jdbc -->
	<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
	<dependency>
		<groupId>org.mariadb.jdbc</groupId>
		<artifactId>mariadb-java-client</artifactId>
		<version>2.7.3</version>
	</dependency>
				
	<!-- connection pool -->
	<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>1.4</version>
	</dependency>

	<!-- spring-jdbc -->
	<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>4.3.14.RELEASE</version>
	</dependency>

	<!-- mybatis -->
	<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.4.6</version>
	</dependency>

	<!-- mybatis-spring -->
	<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>1.3.2</version>
	</dependency>
  1. Servlet-context.xml 에 설정 추가
  • 접속정보(datasource)
  • mpperLocations
  • mybatis 사용 패키지 영역
<!-- datasource -->
	<!-- url, username, password 는 바뀔수 있으니 항상 확인 할 것 -->
	<!-- DB의 종류가 바뀌면 driverClassName,url 도 바뀌게 된다. -->
	<beans:bean name="datasource" class="org.apache.commons.dbcp.BasicDataSource">
		<beans:property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
		<beans:property name="url" value="jdbc:mariadb://localhost:3306/gdj70"/>
		<beans:property name="username" value="web_user"/>
		<beans:property name="password" value="pass"/>
	</beans:bean>
	
	<!--mapper location-->
	<!-- 마이바티스 에서 xml 사용 설정 -->
	<!-- mapper의 위치 꼭 확인 할 것 -->
	<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- DB 접속에 필요한 데이터소스 지정 -->
		<beans:property name="dataSource" ref="datasource"/>
		<!-- 쿼리문 xml 위치 지정-->
		<beans:property name="mapperLocations" value="classpath:kr/co/gudi/dao/*.xml"/>
	</beans:bean>
	
	<!-- mybatis package area -->	
	<!--  마이바티스를 사용할 패키지 지정 -->
	<!-- dao 패키지 경로 확인 -->
	<mybatis-spring:scan base-package="kr.co.gudi.dao"/>
    <!--하단 Namespaces -> mybatis-spring 체크-->
  1. Interface, mapper 생성 -> 실행
  • mapper.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"
>
  1. 기본적인 DB 접속 기능 구현 후 실행

Mapper.xml

<!--  I.O.C : DB 접속, 쿼리 실행, 자원반납, resultSet 생성 등이 자동으로 된다. -->
<!--  D.I : 작업에 필요한 내용을 xml에 등록(빈등록) 해놓으면 필요한 곳에서 사용한다. -->
<!-- 변경사항이 생기면 xml의 내용만 바꿔주면 된다. -->

<!-- mapper : 쿼리문을 저장하고 있는 xml -->
<!-- namespace : 어떤 인터페이스와 연결 되는가? -->
<mapper namespace="kr.co.gudi.dao.MemberDAO">

	<!-- join : INSERT INTO -->
	<!-- id = 연결할 추상 메서드 -->
	<!-- 파라메터가 하나로 뭉쳐서 왔을 경우... -->
	<!-- parameterType 을 쓸 경우는 이름을 사용한다.  -->
	<insert id="join" parameterType="hashmap">
		INSERT INTO member(id,pw,name,age,email,gender) 
			VALUE(#{id},#{pw},#{name},#{age},#{email},#{gender})
	</insert>
	<!-- login : SELECT -->
	<select id="login" resultType="String">
		SELECT id from member 
			WHERE id=#{param1} AND pw=#{param2}
	</select>
	<!-- list : SELECT -->
	<!--  resultType 이 사용자가 만든 class 일 경우 풀 경로를 다 명시해야 한다. -->
	<select id="list" resultType="kr.co.gudi.dto.MemberDTO">
		SELECT id,name,gender FROM member
	</select>
	<!-- delete : DELETE-->
	<delete id="del">
		DELETE FROM member WHERE id=#{param1}
	</delete>
	<!-- detail : SELECT -->
	<select id="detail" resultType="kr.co.gudi.dto.MemberDTO">
		SELECT * FROM member WHERE id=#{param1}
	</select>

</mapper>

Servlet-context

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
	
	<!-- @Controller, @Service 등의 어노테이션을 인식 하도록 해 주는 설정 -->
	<!-- Enables the Spring MVC @Controller programming model -->
	<annotation-driven />

	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />
	
	<!-- @Controller 에서 문자열 반환문에 앞/뒤로 붙여줄 내용 -->
	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<!-- 우리가 사용하고 있는 어노테이션의 인식 범위 -->
	<context:component-scan base-package="kr.co.gudi" />
	
	<!-- DataSource 에 들어갈 정보(접속정보) 생성 -->
	<beans:bean name="datasource" class="org.apache.commons.dbcp.BasicDataSource">
		<beans:property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
		<beans:property name="url" value="jdbc:mariadb://localhost:3306/gdj70"/>
		<beans:property name="username" value="web_user"/>
		<beans:property name="password" value="pass"/>
	</beans:bean>
	
	<!-- 마이바티스 에서 xml 사용 설정 -->
	<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- DB 접속에 필요한 데이터소스 지정 -->
		<beans:property name="dataSource" ref="datasource"/>
		<!-- 쿼리문 xml 위치 지정-->
		<beans:property name="mapperLocations" value="classpath:kr/co/gudi/dao/*.xml"/>
	</beans:bean>
	
	<!--  마이바티스를 사용할 패키지 지정 -->
	<mybatis-spring:scan base-package="kr.co.gudi.dao"/>

0개의 댓글

Powered by GraphCDN, the GraphQL CDN