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로 선언한 부분

'Database > MyBatis' 카테고리의 다른 글
MyBatis, 별명짓기(typeAliases) / DTO변수명과 DB컬럼명이 다른 경우 (0) | 2024.09.12 |
---|---|
MyBatis, Properties 설정하기 (0) | 2024.09.12 |
MyBatis, MyBatis 환경설정 (1) | 2024.09.11 |