본문 바로가기
SetUp

[SetUp] MaBatis 마이바틱스 프로젝트 생성 / 초기 설정 / log4j.xml, mapper.xml, myBatisConfig.xml ..

by bkuk 2022. 12. 22.

 

1. MyBatic library + DB library 준비

 

Products

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

 

 

2. 설정 파일

log4j.xml
0.00MB
mapper.xml
0.00MB
myBatisConfig.xml
0.00MB

 

  • 데이터베이스 설정 파일 ( myBatisConfig.xml )
  • 프레임워크용 로그 출력 설정파일 ( log4j.xml )
  • Mapper 파일( *.xml )
더보기

1) myBatisConfig.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="mariadb1">
		<environment id="mariadb1">
			<transactionManager type="JDBC" />
				<dataSource type="POOLED">
					<property name="driver" value="org.mariadb.jdbc.Driver"/>
					<property name="url" value="jdbc:mariadb://localhost:3306/sample"/>
					<property name="username" value="root"/>
					<property name="password" value="!123456"/>
				</dataSource>
		</environment>
		<environment id="mariadb2">
			<transactionManager type="JDBC" />
				<dataSource type="POOLED">
					<property name="driver" value="org.mariadb.jdbc.Driver"/>
					<property name="url" value="jdbc:mariadb://localhost:3306/project"/>
					<property name="username" value="project"/>
					<property name="password" value="1234"/>
				</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="model1/emp.xml"/>
	</mappers>
</configuration>

 

2)  log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     <appender name="console" class="org.apache.log4j.ConsoleAppender">
          <layout class="org.apache.log4j.PatternLayout">
               <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-35c{1}:%-3L) %m%n" />
          </layout>
     </appender>
     
     <root>
     	<level value = "DEBUG" />
     	<appender-ref ref="console" />
     </root>
</log4j:configuration>

 

3) mapper.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">

 

3. 초기 java 코드


1) 패키지 내 .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="mybatis">

	<select id="selectlist1" parameterType="String" resultType="model1.EmpTO">
		select empno, ename, sal, deptno
		from emp
		where deptno=${deptno}
	</select>
	
	<select id="selectlist2" parameterType="String" resultType="model1.EmpTO">
		select empno, ename, sal, deptno
		from emp
		where ename like #{ename}
	</select>

	<select id="selectlist3" parameterType="String" resultType="model1.EmpTO">
		select empno, ename, sal, deptno
		from emp
		where ename like concat( #{ename}, '%' )
	</select>
	
</mapper>

 

2) import 및 클래스 생성(참고)

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
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 model1.EmpTO;

public class MyBatisEx01 {

	public static void main(String[] args) {
		
		String resource = "myBatisConfig.xml";
		
		InputStream is = null;
		SqlSession sqlSession = null;
		
		try {
			
			is = Resources.getResourceAsStream( resource );
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
			System.out.println( "설정이 호출되었습니다." );
			
 			sqlSession = sqlSessionFactory.openSession();
			System.out.println( "연결 성공 : " + sqlSession );
			
			EmpTO to = new EmpTO();
			to.setDeptno("20");
			
			ArrayList<EmpTO> lists = (ArrayList)sqlSession.selectList("selectlist1", "20" );
			
			for( int i = 0; i < lists.size(); i++ ) {
				EmpTO to2 = lists.get(i);
				
				System.out.printf( "%s\t%s\t%s\t%s\n", to2.getEmpno(), to2.getEname(), to2.getSal(),to2.getDeptno() );
				
			}
			
			
		} catch (IOException e) {
			
			System.out.println( "[에러] " + e.getMessage() );
		} finally {
			if( sqlSession != null ) sqlSession.close();
			if( is != null ) try { is.close(); } catch ( IOException e) {}
		}
		
	}

}