[Mybatis] 간단한 마이바티스 CRUD 예제

 

mybatis-3.1.1.jar mybatis-3.1.1.jar

폴더구조

 

1. config.xml

mybatis 기본적인 설정파일 - 별칭정보, DB정보, , 맵퍼를 정의

<?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>

	<typeAliases>
		<typeAlias alias="Person" type="com.vo.Person" />
	</typeAliases>

	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<!-- connecting to Local MySql -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/test" />
				<property name="username" value="****" />
				<property name="password" value="****" />
			</dataSource>
		</environment>
	</environments>

	<mappers>
		<mapper resource="com/mybatis/mapper/PersonMapper.xml" />
	</mappers>

</configuration>

 

2. MyBatisConnectionFactory.java

설정파일을 읽어서 Mybatis를 사용하게 해주는 녀석!

package com.mybatis;
 
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 MyBatisConnectionFactory {
 
    private static SqlSessionFactory sqlSessionFactory;
 
    static {
        try {
            String resource = "com/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;
    }
}

 

3. Person.java

package com.vo;

public class Person {

	private int id;
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String toString() {
		return "id: " + id + " Name: " + name;
	}

}

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

4. PersonMapper.xml

이곳에 SQL쿼리문을 작성해준다

※Insert에 useGeneratedKyes="true" , KeyProperty="" 를 설정해 주면 insert한 키 값을 얻어 올 수 있음

<?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="com.dao.PersonDAO">

    <resultMap id="result" type="Person">
        <result property="id" column="id"/>
        <result property="name" column="name"/>   
    </resultMap>
 
    <select id="selectAll" resultMap="result">
        SELECT * FROM persons;
    </select>
    
 	<select id="selectById" parameterType="int" resultMap="result">
        SELECT * FROM persons WHERE id = #{id}
    </select>
    
 	<insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="list_id">
        INSERT INTO persons (name) VALUES (#{name});
    </insert>
    
    <update id="update" parameterType="Person">
        UPDATE persons
        SET name = #{name}
        WHERE id = #{id} 
  	</update>
 
	<delete id="delete" parameterType="int">
        DELETE from persons WHERE id = #{id}
    </delete>
    
</mapper>

 

5. PersonDAO.java

mapper에 있는 쿼리정보와 1:1 매칭

package com.dao;

import java.util.List;

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

import com.vo.Person;

public interface PersonDAO {

	public List selectAll(); // 모든 행 가져오기

	public Person selectById(int id); // 특정한 행 가져오기

	public int insert(Person person); // 삽입

	public void update(Person person); // 업데이트

	public void delete(int id); // 삭제

}

 

6. Main.java

package com.main;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.mybatis.MyBatisConnectionFactory;
import com.dao.PersonDAO;
import com.vo.Person;

public class Main {
	public static void main(String args[]) {

		// Mybatis 세션연결
		SqlSession sqlSession = MyBatisConnectionFactory.getSqlSessionFactory()
				.openSession(true);
		
		// Mapper 연결
		PersonDAO person = sqlSession.getMapper(PersonDAO.class);

		// Select
		List persons = null;
		persons = person.selectAll();
		for (int i = 0; i < persons.size(); i++) {
			System.out.println("Person Name : " + persons.get(i).getName());
		}

		// Insert
		Person p = new Person();
		p.setName("테스터");
		person.insert(p);
		System.out.println("return key : " + p.getId());

		// update
		p.setId(14);
		p.setName("Terry");
		person.update(p);
		System.out.println("return key : " + p.getId());

		// Delete
		p.setId(16);
		person.delete(p.getId());
		System.out.println("return key : " + p.getId());
	}
}

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
35 [EMF] EMF Tutorial EMF 튜터리얼 file 졸리운_곰 2023.08.23 283
34 Eclipse RAP Tutorial for Beginners - Workbench Application (OLD) file 졸리운_곰 2021.01.30 323
33 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.27 253
32 [Eclipse] GEF entry series (10, an implementation of the form) file 졸리운_곰 2019.11.25 212
31 GEF Programmer Guide 번역 졸리운_곰 2019.11.25 227
30 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.20 224
29 RCP 에디터 정리 졸리운_곰 2019.11.20 333
28 다른 그림과 관련하여 GEF 편집기 레이아웃에서 그림의 위치 제한 조건을 동적으로 계산 Dynamically calculating the position constraints for a figure in a GEF editor layout in relation to another figure file 졸리운_곰 2019.11.20 277
27 RCP 등에서 .mf 파일로 다른 프로젝트 익스포트 포함시 라이브러리(메소드)를 찾지 못할 때, Eclipse RCP - cant resolve importing libraries in final build file 졸리운_곰 2019.10.15 410
26 ESE2006-EclipseModelingSymposium15_GMF.pdf file 졸리운_곰 2019.09.21 302
25 GMF_Creation_Review.pdf file 졸리운_곰 2019.09.21 366
24 Eclipse EMF and GMF Tutorial file 졸리운_곰 2019.09.21 222
23 GMF Tutorial/ko file 졸리운_곰 2019.09.20 347
22 Model Driven Architecture approach to domain of graphical editors file 졸리운_곰 2019.09.20 268
21 Single_Sourcing_RAP_RCP_en.pdf file 졸리운_곰 2019.05.15 311
20 Rich client platform 설명 및 배우기 참고 졸리운_곰 2019.05.15 309
19 Rich Ajax Platform, Part 1: 소개 file 졸리운_곰 2019.05.15 320
18 또 하나의 크로스 플랫폼: Eclipse RAP file 졸리운_곰 2019.05.15 319
17 Eclipse 4 RCP 튜토리얼(완료) file 졸리운_곰 2019.05.14 977
16 Updating UI in Eclipse RCP 졸리운_곰 2015.11.07 408
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED