on
mybatis설정(mybatis미워..)
mybatis설정(mybatis미워..)
세미 프로젝트가 끝나자마자 mybatis를 배우게 되었다. JDBC나 SQL을 나름 좋아하는 나인데,,,이건 좀 맘에 안 든다.
아 바스형~ 뭐 어쩔것이여,,,해보자고요 아자아자!
1. mybatis 라이브러리 추가하기
maven repository 홈페이지에서 다운 받음 -> webapp 라이브러리 추가하는 곳에 추가하기
2. XML파일 설정하기
1) Dynamic Web Project를 만든 후 프로젝트 우클릭 하여 src/main/resources 소스 폴더를 하나 만든다.
(src/main/java 소스 폴더랑 같은 위치에)
2) src/main/resources 폴더에 mybatis-config.xml 파일을 하나 만들어 준다.
//커넥션 풀을 이용할 것임.
3) src/main/resources 폴더에 config 폴더(그냥폴더! 소스폴더X)를 추가한 후, 그 안에 SqlSessionConfig 클래스를 만든다. (이 전에 JDBC를 할 때 DAO에서 했었던 getConnection 기능을 하는 클래스)
package config; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /* * SqlSession생성 * 기존 getConnection과 같은 역할 * */ public class SqlSessionConfig { private static SqlSession session; public static SqlSession getSession() { try { //db관련 설정을 가지고 있는 mybatis-config.xml 파일을 먼저 읽어옴. String resource = "/mybatis-config.xml"; InputStream stream = Resources.getResourceAsStream(resource); //sqlSession객체를 생성하기 위해서는 SqlSessionFactory 객체 먼저 생성 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(stream); session = factory.openSession(true); //true는 autocommit //false는 수동commit(아쉽게도 수동은 영어로 모른다) }catch(Exception e) { e.printStackTrace(); }return session; } }
4) 이제 정식으로 기능별로 query를 작성할 수 있는 mapper를 만들어 보기로 하자.
src/main/resources 폴더 안에 mappers라는 폴더(그냥 폴더)를 만들고, 그 안에 member-mapper.xml, message-mapper.xml등의 mapper를 만들어 준다.
--mapper설정 (개중요!!!!)--
: mapper를 만들어 준다고 mybatis가 알아서 인식해 주는 것이 아닌 mybatis-config.xml파일에 mapper를 꼭 추가해주어야 한다!!!
★mybatis-config.xml 코드 (밑부분 mapper 추가!!!!!!)★
--member-mapper코드--
: 하단의 코드와 같이 mapper이름을 namespace에 설정해주고 밑에 select 태그와 같은 태그를 이용하여 쿼리를 작성하여준다.
select * from tbl_member where id = #{id}
??그럼 DAO에선 어떻게 써야 할까?
select 태그의 경우 selectOne/selectList로 하여 값을 가져온다.
내가 mybatis를 싫어하는 이유는 이런 설정도 복잡하지만 태그와 return되는 값을 사용하고 이런게 복잡하다 그 부분은 다음 포스트에서 정리해야겠다!
mybatis,,,내가 이긴다,,
from http://pipilihai.tistory.com/6 by ccl(A) rewrite - 2021-12-24 14:27:43