Mybatis를 이용한 간단한 CRUD(Create, Read, Update, Delete)

(1) 프로젝트 구조


(2) Mybatis와 Database 설정 파일

db.properties

- 데이터베이스에 대한 정보

 driver=org.mariadb.jdbc.Driver
 url=jdbc:mariadb://localhost:3306/chat
 username=root
 password=비밀번호

mybatis-config.xml

마이바티스 설정 정보

(2) Mapper

select, insert, update, delete에 대한 쿼리

(3) VO, DAO

MemberVO.java

package com.ysh.vo;

public class MemberVO {
	
	public String email;
	public String password;
	public String name;
	
	public MemberVO() {
		super();
	}

	public MemberVO(String email, String password, String name) {
		super();
		this.email = email;
		this.password = password;
		this.name = name;
	}
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
}

MemberDAO.java

package com.ysh.dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.ysh.vo.MemberVO;

public class MemberDAO {

	private SqlSessionFactory sqlSessionFactory = null;

	public MemberDAO(SqlSessionFactory sqlSessionFactory) {
		this.sqlSessionFactory = sqlSessionFactory;
	}
	
	public int insertMember(MemberVO memberVO) {
		int id = -1;
		SqlSession session = sqlSessionFactory.openSession();
		
		try {
			id = session.insert("member.insert", memberVO);
		} finally {
			session.commit();
			session.close();
		}
		System.out.println("insert("+memberVO+") --> "+memberVO.getEmail());
		System.out.println(memberVO.getName());
		return id;
	}
	
	public List selectAll() {
		List list = null;
		SqlSession session = sqlSessionFactory.openSession();
		
		try {
			list = session.selectList("member.selectAll");
		} finally {
			session.close();
		}
		System.out.println(list);
		return list;
	}
	
	public MemberVO selectOne(String email) {
		MemberVO member = null;
		SqlSession session = sqlSessionFactory.openSession();
		
		try {
			member = session.selectOne("member.selectOne", email);
		} finally {
			session.close();
		}
		System.out.println("select" + member.getEmail());
		return member;
	}
	
	public void update(MemberVO memberVO) {
		
		int id = -1;
		SqlSession session = sqlSessionFactory.openSession();
		
		try {
			id = session.update("member.update", memberVO);
		} 
		finally {
			session.commit();
			session.close();
		}
	}
	
	public void delete(String email) {
		SqlSession session = sqlSessionFactory.openSession();
		
		try {
			session.delete("member.delete", email);
		} 
		finally {
			session.commit();
			session.close();
		}
	}

}

(4) ConnectionFactory

ConnectionFactory.java

package com.ysh.config;

import java.io.FileNotFoundException;
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 ConnectionFactory {
	
	private static SqlSessionFactory sqlSessionFactory;
	
	static {
		try {
			String resource = "com/ysh/config/mybatis-config.xml";
			Reader reader = Resources.getResourceAsReader(resource);
			
			if (sqlSessionFactory == null) {
				sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
			}
		} catch(FileNotFoundException fileNotFoundException) {
			fileNotFoundException.printStackTrace();
		} catch(IOException ioException) {
			ioException.printStackTrace();
		}
	}
	public static SqlSessionFactory getSqlSessionFactory() {
		return sqlSessionFactory;
	}
}





'Framework > Mybatis' 카테고리의 다른 글

Mybatis Setting (With Gradle)  (0) 2014.07.23

Mybatis Setting (With Gradle)

OS >> Mac OS X Mavericks

IDE >> Spring Tool Suite

Java Version >> 1.8

DB >> MairaDB


(1) Eclipse에 Gradle 설치하기

Spring Dashboard에서 오른쪽 아래 Manage - IDE EXTENSIONS 를 클릭 후 Gradle을 검색하면 플러그인을 설치할 수 있다.


(2) Gradle Project 만들기

New Project 선택 후 Wizard에 gradle을 검색하면 Gradle Project를 만들 수 있다.

프로젝트 이름을 정한 후 Sample Project를 Java Quickstart로 지정한다.

(3) Mybatis 와 MariaDB 라이브러리 추가하기

프로젝트 생성 후 Project Explorer에 build.gradle 이란 파일이 생성된다.

Maven으로 치면 pom.xml과 같은 곳이므로 의존성을 추가해준다.


build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
    
    compile 'org.mybatis:mybatis:3.1.1'
    compile 'org.mariadb.jdbc:mariadb-java-client:1.1.7'
    compile 'org.slf4j:slf4j-log4j12:1.7.6'
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}


dependencies 에 mybatis, mariadb, slf4j를 추가한다.


프로젝트를 우 클릭 후 Gradle - Refresh Dependencies를 클릭하면 자동으로 Gradle Dependencies가 생성되고 Maven Repository로 부터 라이브러리를 다운 받는다.

아래와 같이 추가된 라이브러리를 확인할 수 있다.

다음엔 Java로 Mybatis를 이용하여 간단한 CRUD 를 작성해보겠다.

Spring MVC 환경 설정

OS : OS X Mavericks

IDE : Spring Tool Suite

Java Version : 1.8

(1) 프로젝트 생성





(2) 디렉토리 구조


(3) home.jsp 파일 수정

한글이 깨져서 나오기 때문에 jsp 파일에 Encoding을 추가해준다.

pageEncoding="UTF-8"

 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" pageEncoding="UTF-8" %>


(4) 서버 실행


(5) 실행 결과




'Framework > Spring Framework' 카테고리의 다른 글

[Spring Framework] 1. 오브젝트와 의존관계  (0) 2014.05.03

[Spring Framework] 1. 오브젝트와 의존관계

사용자 정보를 JDBC API를 통해 DB에 저장하고 조회할수 있는 간단한 DAO를 만들고자 함

DAO (Data Access Object):
DB
를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만 든 오브젝트임 


객체 정보를 DB에 저장할 때는 자바빈 규약을 따르는 오브젝트를 이용하면 편리

사용자 정보를 표현하는 User 클래스를 자바빈으로 규약을 따르도록 작성


 
class User {
    String id;
    String name;
    String password;
    // getters and setters
}


'Framework > Spring Framework' 카테고리의 다른 글

Spring MVC 환경 설정  (0) 2014.07.20