Web/MyBatis

MyBatis, 환경설정하기 / 사용방법

greenyellow-s 2024. 9. 11. 14:41
MyBatis

 

ORM(Object Relational Mapping) 프레임워크는 데이터베이스와 객체와의 관계를 맵핑시켜 퍼시스턴스 로직 처리를 도와주는 프레임워크이다.


 

환경설정

 

MyBatis를 사용하려면 프로젝트 내에서 환경설정이 필요하다.

 

환경설정 파일 이름은 mybatis-config.xml 로 많이 사용되고 있다.

 

환경설정의 역할

 

:Connection Pool

: typeAlias - 별칭

: mapper.xml 파일 위치 파악

 

DB와 연동하는 역할은 환경설정 파일이 하고 SQL문장은 mapper 파일이 가져간다.


mybatis-config.xml

 

DB와 연결하는 mybatis 파일이다.

 

DB 연결 - <environments></ environments>

Mapper주소 - <mappers></mappers>

 

mapper를 생성해서 사용하려면 mybatis-config.xml 파일에 꼭 선언해 주어야한다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${드라이브주소}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${계정이름}"/>
				<property name="password" value="${계정비밀번호}"/>
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="mapper/userMapper.xml"></mapper>
	</mappers>
</configuration>

Mapper.xml

 

나중에 SQL문장을 모아놓을 파일이다.

 

Mapper파일은 여러개 불러올 수 있다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

 

 



Mapper 파일을 생성해서 사용하려면 mybatis-config.xml 파일에 선언해줘야지 사용할 수 있다.

mybatis-config.xml
<mappers>
	<mapper resource="mapper/userMapper.xml"></mapper>
	<mapper resource="mapper/memberMapper.xml"></mapper>
</mappers>

DAO.java

 

Connection, pstmt, rs 등등을 이제 DAO에서 선언하지 않아도 된다.

public class BardDAO{
    private SqlSessionFactory sessionFactory;

    public BoardDAO () {
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

private SqlSessionFactory sessionFactory;

자바 파일과 mybatis를 연결하려면(접근하려면) 객체가 필요하다. ( = sqlSession이 필요하다.)
sqlSessionFactory를 통해 sqlSession을 생성할 수 있다.

 

Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

: 하나의 자원이다.
: xml에 있는 파일을 읽어서 reader안에다가 보관하겠다.

IO Stream
1. byte
InputStream
OutputStream

2. 문자(2byte) 단위
Reader
Writer

즉, 2byte 단위로(문자단위) 현재 환경설정 파일을 읽어와라는 의미이다.

* InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
  byte 단위로 읽어와라

 


public void boardWrite(Map<String, String> map) {
    SqlSession sqlSession = sqlSessionFactory.openSession();
    sqlSession.insert("boardSQL.boardWrite", map);
    sqlSession.commit();
    sqlSession.close();

}//boardWrite

 

SqlSession sqlSessino = sqlSessionFactory.openSession();
SqlSession은 인터페이스이기 때문에 new로 생성하지 못한다.

따라서 openSession(); 으로 오픈 세션을 생성한다.

 

이 객체를 통해 mybatis를 접근할 수 있다.

 

sqlSession.insert("이름",userDTO);
sqlSession객체에 insert문을 불러온다.

 

 

SQL 자체에 Insert라는 태그를 불러올껀데 Inset 태그가 여러개 있을 수 있다.
따라서, 어떤 id의 insert인지 불러와야한다.

 

"이름" == Mapper의 id로 선언한 부분