희원96
코딩 공부 일기
희원96
전체 방문자
오늘
어제
  • 다이어리 (94)
    • 일상 (2)
      • #.일기 (2)
      • 정보처리기사 (0)
    • 코딩 공부 (90)
      • Python (11)
      • Java (12)
      • DB (18)
      • Arduino (5)
      • HTML,CSS (7)
      • JSP, Servlet (14)
      • Javascript (8)
      • jQuery (2)
      • Spring (1)
      • Android (8)
      • ML (4)
      • React (0)
    • 프로젝트 (1)
      • 미니프로젝트 (1)
      • 1차프로젝트 (0)
      • 2차프로젝트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 개발 공부 일기

인기 글

태그

  • arduino
  • Ajax
  • 화이팅
  • Python
  • 아두이노
  • Database
  • 파이썬
  • 스프링
  • 머신러닝
  • JSP
  • JavaFestival
  • 자바
  • Spring
  • Android
  • DB
  • jQuery
  • 데이터베이스
  • JS
  • JavaScript
  • CSS
  • ml
  • 안드로이드
  • 스마트인재개발원
  • Servlet
  • 자바스크립트
  • HTML
  • java
  • 제이쿼리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
희원96

코딩 공부 일기

[MyBatis]환경 구축
코딩 공부/JSP, Servlet

[MyBatis]환경 구축

2022. 5. 13. 12:38

Maven

-Java용 프로젝트 관리 도구

-필요한 라이브러리를 pom.xml에 정의

-라이브러리의 동작에 필요한 라이브러리도 자동 다운로드

MyBatis

-Java코드와 SQL쿼리를 자동으로 연결해주는 프레임워크(mapping기능)

-SQL쿼리를 XML파일로분리

-JDBC코드 간결하게 사용가능

 

1)기존 DAO 클래스 방식

2) Mapper interface 방식

3) Annotation 방식

package com.smhrd.database;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class SqlSessionManager {
	
	static SqlSessionFactory sqlSession;
	
	//객체 생성시 실행되는 구간(객체를 부르기만 해도 동일하게 실행되는 구간이다.)
	//생성자 : 인스턴스를 생성하는 메소드
	//서로 다른 인스턴스(주소 값이 서로다른 객체)도 동일한 내용을 공유한다.
	//static(정적인 or 공유변수)
	
	static {
		//1) 연결할 설정 정보 가져오기
		String resource = "com/smhrd/database/mybatis-config.xml";
		//2) 문자열을 읽어서 진짜 파일로 되돌려준 도구를 하나 꺼내오기
		Reader reader;
		
		try {
			//3) config파일을 읽어서 class path 경로형태를 가진 Reader객체로 반환
			//문자열로 된 comfig파일을 진짜 해석할 수 있게 도와주는 역할
			reader = Resources.getResourceAsReader(resource);
			
			//4)config파일안에 있는 데이터베이스 정보를 기반으로
			// DB랑 연결통로를 가지고 있을 수 있게 해주는 구간
			sqlSession =new SqlSessionFactoryBuilder().build(reader);
			
			
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		
	}
	//5) DB랑 연결하고 있는 연결통로에 대한 정보를 갖고있는 객체 반환
	// db연결,종료,실행 세션관리
	public static SqlSessionFactory getsqlSession() {
		return sqlSession;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

	<environments default="development">
		<environment id ="development">
		<transactionManager type="JDBC"/>
		<!-- DB연결설정 -->
		<dataSource type="POOLED">
			<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
			<property name="url" value="jdbc:oracle:thin:@Localhost:1521:xe"/>
			<property name="username" value="hr"/>
			<property name="password" value="hr"/>
		</dataSource>
		</environment>
	</environments>
	
	<!--  Mapper 파일(SQL 쿼리문을 가지고 있는 파일) 설정하기 -->
	<!--  파일이 여러개 새성될 수 있다. -->
	<mappers>
		<mapper resource="com/smhrd/database/MemberMapper.xml"/>
	</mappers>






</configuration>
<?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">
        
        <!-- namespace : mapper 식별자(고유의 이름) -->
        <!-- 절대 중복되면 안된다. 중복되는 순간 mapper를 찾지 못한다. -->
        <mapper namespace="com.smhrd.model.DAO">
        <!-- Query문 작성해서 넣는 공간 -->
        <insert id="memberinsert" parameterType="com.smhrd.model.IotMember">
        	insert into iotmember values(#{id},#{pw},#{nickname},#{age})
        
        </insert>
                  
        </mapper>
    '코딩 공부/JSP, Servlet' 카테고리의 다른 글
    • [mybatis]회원가입실습2
    • [Mybatis]회원 가입 실습 xml
    • (JSP) model2 실습
    • [JSP] MVC, JDBC(model1 실습)
    희원96
    희원96
    개발 공부

    티스토리툴바