- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 자료구조 [Mybatis] 간단한 마이바티스 CRUD 예제
2020.09.28 13:22
[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;
}
}
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-예제 [마르시아 블로그]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 1 |
numerical analysis with java examples - turhancoban.com.pdf
| 졸리운_곰 | 2016.06.07 | 512 |

