mybatis 사용법
MyBatis는 Java 언어를 사용하여 데이터베이스에 접근하기 위한 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis를 사용하면 SQL 쿼리문을 작성하지 않고도 데이터베이스와 상호작용할 수 있으며, 데이터베이스 연결, 트랜잭션 관리 및 데이터 매핑을 간편하게 처리할 수 있습니다.
1. MyBatis 설정 및 환경 구성
Java 프로젝트에서 MyBatis를 사용하기 위해 아래와 같이 설정 및 환경을 구성해야 합니다.
- MyBatis 라이브러리 추가:
pom.xml
파일 (Maven 프로젝트의 경우) 또는build.gradle
파일 (Gradle 프로젝트의 경우)에 MyBatis 의존성을 추가합니다.
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
- MyBatis 환경 설정 파일 작성:
mybatis-config.xml
파일을 작성하여 MyBatis의 기본 설정을 정의합니다. 이 파일에서 데이터베이스 연결 정보, 트랜잭션 관리 방식 등을 설정할 수 있습니다.
<?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>
<!-- MyBatis 설정 내용 작성 -->
</configuration>
- 데이터베이스 연결 정보 작성:
mybatis-config.xml
파일 내에서 데이터베이스 연결 정보를 작성합니다. JDBC 드라이버 클래스명, JDBC URL, 사용자명, 비밀번호 등을 설정합니다.
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
</configuration>
2. Mapper 인터페이스 및 SQL 매핑 파일 작성
MyBatis에서 데이터베이스와 상호작용하기 위해 Mapper 인터페이스와 SQL 매핑 파일을 작성해야 합니다.
- Mapper 인터페이스 작성: SQL 쿼리를 호출하는 메서드를 정의한 인터페이스를 작성합니다. MyBatis는 이 인터페이스를 기반으로 SQL 쿼리를 실행합니다.
public interface UserMapper {
User getUserById(int id);
void insertUser(User user);
void updateUser(User user);
void deleteUser(int id);
List<User> getAllUsers();
}
- SQL 매핑 파일 작성:
UserMapper.xml
과 같은 이름의 SQL 매핑 파일을 작성합니다. 이 파일에서 실제 SQL 쿼리를 작성하고 Mapper 인터페이스의 메서드와 매핑합니다.
<?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.example.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (name, email) VALUES (#{name}, #{email})
</insert>
<!-- 나머지 메서드에 대한 SQL 쿼리 작성 -->
</mapper>
3. MyBatis 사용하기
MyBatis를 사용하기 위해 아래와 같은 순서로 작업을 수행합니다.
- MyBatis 환경 설정 파일 로드
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- SqlSession 생성
SqlSession sqlSession = sqlSessionFactory.openSession();
- Mapper 인터페이스 인스턴스화
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
- Mapper 메서드 호출
User user = userMapper.getUserById(1);
List<User> userList = userMapper.getAllUsers();
- SqlSession 닫기
sqlSession.close();
위의 단계를 따르면 MyBatis를 사용하여 데이터베이스와 상호작용할 수 있습니다. 자세한 내용은 MyBatis 공식 문서를 참조하시기 바랍니다.
#MyBatis #Java