[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());
	}
}

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
184 jsoup을 활용해서 Java에서 HTML 파싱하는 방법 정리 file 졸리운_곰 2017.03.04 157
183 Java Naming conventions 자바 명명 규칙 졸리운_곰 2017.03.04 74
182 NSA의 Dataflow 엔진 Apache NiFi 소개와 설치 file 졸리운_곰 2017.01.23 463
181 wordpress-java-integration 자바와 워드프레스 통합 졸리운_곰 2016.12.30 166
180 XQuery를 이용한 Screen-Scraping file 졸리운_곰 2016.11.29 168
179 Getting Started with Custom Deserialization in Jackson 졸리운_곰 2016.11.18 168
178 how to parse json array value using json node 졸리운_곰 2016.11.17 60
177 How to convert Java object to / from JSON (Jackson) 졸리운_곰 2016.11.16 78
176 Create New Posts in Wordpress using Java and XMLRpc 졸리운_곰 2016.11.14 69
175 자바로 POST 방식으로 통신하기, java httppost 클래스를 활용한 예제 졸리운_곰 2016.11.14 444
174 [Java]아파치 HttpClient사용하기 file 졸리운_곰 2016.11.14 104
173 Timer 클래스를 이용한 작업 스케쥴링 졸리운_곰 2016.11.14 97
172 SQLite Java Tutorial 졸리운_곰 2016.08.11 84
171 numerical analysis with java examples - turhancoban.com.pdf file 졸리운_곰 2016.06.07 263
170 MyBatis 기본 - selectList file 졸리운_곰 2016.06.07 292
169 Mybatis ResultMap 그리고 select 졸리운_곰 2016.06.07 267
168 Mybatis selectList 예제 졸리운_곰 2016.06.05 448
167 java 에서 mybatis 사용한 예제 file 졸리운_곰 2016.06.05 462
» [Mybatis] 간단한 마이바티스 CRUD 예제 file 졸리운_곰 2016.06.05 273
165 자바 8 살펴보기 file 졸리운_곰 2016.05.23 277
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED