공식 사이트
mybatis – MyBatis 3 | Introduction
What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use
mybatis.org
패키지 파일 구조
Mybatis.xml
<?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>
<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://127.0.0.1:3306/board_db"/>
<property name="username" value=""/> // 각자의 db username
<property name="password" value="board1234"/> // 각자의 db password
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmap/UserMapper.xml"/>
</mappers>
</configuration>
User.java
sql 질의 후 결과를 담은 domain 객체
public class User {
private String id;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserMapper.xml
실행되는 SQL 질의문을 담음, Mybatis.xml에서 맵핑되어지는 파일
<?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="UserMapper">
<select id="findAll" resultType="User"> // default package가 아닐 경우 com.project.domain.User 이렇게 패키지명까지 작성해야 됨
select * from user;
</select>
</mapper>
UserMapper.java
@Mapper를 통해 mapper로 설정. xml 파일과 같은 이름으로 설정해야됨.
메소드 이름은 xml파일에서 대응되는 sql문의 id와 같게 만들어야됨.
ex) UserMapper.java -> UserMapper.xml
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
List<User> findAll();
}
UserDAO.java
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import mybatis.MyBatis;
public class UserDAO {
private SqlSessionFactory sessionFactory = null;
public UserDAO() {
this.sessionFactory = MyBatis.getSqlSessionFactory();
}
public List<User> findAll() {
SqlSession session = this.sessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class); // UserMapper.java(인터페이스)를 통해 UserMapper.xml을 실행시킴
try {
return userMapper.findAll();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
return null;
}
}
Mybatis.java
mybatis.xml 파일을 로딩하여 mybatis를 사용할 수 있게 하는 객체를 가져옴
package mybatis;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatis {
private final static String RESOURCE = "mybatis/mybatis.xml";
private static SqlSessionFactory sqlMapper = null;
public static SqlSessionFactory getSqlSessionFactory() {
if (sqlMapper == null) {
try {
InputStream inputStream = Resources.getResourceAsStream(RESOURCE);
sqlMapper = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlMapper;
}
}
참고 사이트
JSP 게시판 업그레이드 - Mybatis 연동 2
JSP 게시판 업그레이드 - Mybatis 연동 2 웹 프로젝트내에 MyBatis를 적용하고 수정/추가된 소스에 ...
blog.naver.com
[JSP] 8. 영속프레임워크 MyBatis를 활용한 CRUD 구현 - JSP와 Oracle(XML 방식)
[JSP] 8. 영속프레임워크 MyBatis를 활용한 CRUD 구현 - JSP와 Oracle(XML 방식) 조금 알기 쉽게 작성하였다. "영속 프레임워크"라고 보면 된다. 영속 프레임워크라는 것은 DAO 객체에서 데이터베이스 데이
yyman.tistory.com
'개발 > JAVA' 카테고리의 다른 글
스프링 정적컨텐츠 루트 폴더 (css, javascript) (0) | 2021.03.01 |
---|---|
스프링부트 QueryDSL 설정 (0) | 2021.03.01 |
스프링부트 Mybatis 설정 (0) | 2021.03.01 |
스프링부트 로그 설정 (0) | 2021.03.01 |
인텔리제이에서 스프링부트 프로파일 설정 (0) | 2021.03.01 |