-
01. MyBatis 설정 (Mysql )MyBatis 2021. 11. 30. 21:39반응형
※ MyBatis 설정 순서
01. MyBatis 관련 라이브러리 받기
02. MyBatis 관련 라이브러리 프로젝트에 추가
03. MyBatis 관련 셋팅
03-1. mybatis-config.xml (DB 연결 정보)
03-2. SqlSessionFactory 생성
03-3. mapper, VO 생성
04. MyBatis 테스트
01. MyBatis 관련 라이브러리 받기
아래 사이트에 접속하여 MyBatis관련 라이브러리를 받아줍니다.
https://github.com/mybatis/mybatis-3/releases
Releases · mybatis/mybatis-3
MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.
github.com
사이트에서 MyBatis-3.5.7.zip 파일을 클릭하여 받아줍니다. (버전 상관 x)
MyBatis-3.5.7.zip 파일을 받아서 열어보면 mybatis-3.5.7.jar, mybatis-3.5.7.pdf가 있습니다.
mybatis-3.5.7.pdf은 영문으로 된 매뉴얼 파일로 개발 시 참고하시면 됩니다.
저희가 실질적으로 사용할 파일은 mybatis-3.5.7.jar 입니다. 복사하여 자신의 프로젝트에 추가하여 줍니다.
02. MyBatis 관련 라이브러리 프로젝트에 추가
src/main/webapp/WEB-INF/lib 아래에 넣어주시면 됩니다.
그리고 프로젝트에 정상적으로 추가가 되었는지 확인해 줍니다.
프로젝트 우클릭 후 properties을 클릭하여 줍니다.
아래와 같이 창이 표출이되면 java Build Path 클릭 후 Libraries를 선택하여 내가 추가한 파일(mybatis-3.5.7.jar)가 정상적으로 추가 되었는지 확인하여 줍니다. 아래와 같이 추가되어있으면 정상입니다.
03. MyBatis 관련 셋팅
pakage 정보
03-1. mybatis-config.xml (DB 연결 정보)
<?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> <typeAliases> <typeAlias alias="userInfo" type="common.user.UserInfoVO"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.0.2:3306/study_db?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8"/> <property name="username" value="userId"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="basicProject/mapper/userInfoMapper.xml"/> <mapper class="common.user.mybatis.UserMapper" /> </mappers> </configuration>
03-2. SqlSessionFactory 생성
package database; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import common.user.UserInfoVO; import common.user.mybatis.UserMapper; public class DatabaseConnectionTest { public static void main(String[] args) { // TODO Auto-generated method stub SqlSessionFactory sqlSessionFactory = mybitisBbConnenction(); List<UserInfoVO> userInfoList = null; try (SqlSession session = sqlSessionFactory.openSession()){ //xml 맵핑 userInfoList = session.selectList("basicProject.mapper.userInfoMapper.selectUserInfo"); //java 맵핑 // userInfoList = session.getMapper(UserMapper.class).selectUser(); } catch (Exception e) { // TODO: handle exception System.out.println(e.getMessage()); } int i = 0; for(UserInfoVO dto : userInfoList) { System.out.println(i++); System.out.print(dto.getAge()+ " / "); System.out.println(dto.getName()); } } static SqlSessionFactory sqlSessionFactory; private static SqlSessionFactory mybitisBbConnenction() { //mybatis 설정파일위치 String resource = "./basicProject/mapper/mybatis-config.xml"; InputStream inputStream; try { inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); return null; } return sqlSessionFactory; } }
03-3. mapper, VO 생성
mapper는 두 종류로 사용이 가능합니다. java, xml 장단점이 있으니 그에 맞게 사용하면됩니다. 장단점에 대해서는 차후에 추가적으로 확인해보도록 하겠습니다.
※ java를 사용할 경우 위 "SqlSessionFactory 생성"에서 주석처리 되어있는 "userInfoList = session.getMapper(UserMapper.class).selectUser();" 부분을 사용하여 주시면 됩니다.
03-3-1. java 어노테이션 사용
package common.user.mybatis; import java.util.List; import org.apache.ibatis.annotations.Select; import common.user.UserInfoVO; public interface UserMapper { @Select("Select * from T_USER_MST") List<UserInfoVO> selectUser(); }
03-3-2. 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="basicProject.mapper.userInfoMapper"> <select id="selectUserInfo" resultType="userInfo"> SELECT * FROM T_USER_MST </select> </mapper>
03-3-3. VO
package common.user; public class UserInfoVO { private String id; private String name; private String age; private String gender; private int index; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
04. MyBatis 테스트
SqlSessionFactory 생성에서 작성한 DatabaseConnectionTest 클래스를 실행하여 정보가 정상적으로 불러온다면 기본적인 셋팅이 완료되었습니다.
반응형'MyBatis' 카테고리의 다른 글
03. MyBatis 로그 남기기(Log4j 2) (0) 2021.12.07 02. MyBatis properties 설정하기 (0) 2021.12.01 00. 마이바티스(Mybatis) 란? (0) 2021.11.29