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

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



출처: https://marshia.tistory.com/entry/Mybatis-간단한-마이바티스-CRUD-예제 [마르시아 블로그]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
370 Spring Boot - Properties 사용법 정리 졸리운_곰 2020.10.15 232
369 spring 설정 xml과 소스코드에서 properties 사용하기 졸리운_곰 2020.10.15 179
368 Spring Batch 간단 정리 Sprong Batch 기초를 알아보자 file 졸리운_곰 2020.10.13 198
367 Spring Batch - ItemReader, ItemWriter, ItemProcessor 졸리운_곰 2020.10.13 370
366 spring batch» Spring Batch Tasklet Example file 졸리운_곰 2020.10.12 198
365 Spring Batch Example 2 - 간단한 Job만들기 file 졸리운_곰 2020.10.12 151
364 Spring batch Job 설정과 실행하기 file 졸리운_곰 2020.10.12 206
363 [Spring Batch] Configuring and Running a Job file 졸리운_곰 2020.10.12 121
362 Maven 배포시 Local Jar 파일과 함께 하기! file 졸리운_곰 2020.10.06 164
361 How to add a local lib directory to Maven 졸리운_곰 2020.10.06 188
360 [Maven] 외부 jar 의존성 추가, war build 시 외부 jar 포함시키기 졸리운_곰 2020.10.05 388
359 Spring Boot 프로젝트에 외부 라이브러리(jar) 추가하기 졸리운_곰 2020.10.05 946
358 [maven 설정] Jackson Databind » 2.6.7.1 졸리운_곰 2020.10.05 187
357 [maven 설정] MongoDB Java Driver » 3.12.6 졸리운_곰 2020.10.05 175
356 Maven 에 직접 jar 라이브러리 추가하기!!! ( 외부 repository 사용이 안될때) + scope 정리 졸리운_곰 2020.10.05 169
» [Mybatis] 간단한 마이바티스 CRUD 예제 file 졸리운_곰 2020.09.28 663
354 [MyBatis] 검색 SELECT 졸리운_곰 2020.09.24 143
353 Jackson 라이브러리를 이용한 JSON String, Map 간 변환 (How to convert JSON String to Map and Map to JSON String) 졸리운_곰 2020.09.24 245
352 Jackson 라이브러리 기본기능 정리 - json 직렬화와 역직렬화 file 졸리운_곰 2020.09.24 194
351 Java에서 JSON 문자열 생성 및 JSON 문자열을 자바 객체로 변환하기 졸리운_곰 2020.09.24 218
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED