JSP

 

 

 

1. MyBatis

가. 다운로드

http://blog.mybatis.org/p/products.html


나. mybatis 설정 방법

1) mybatis-3.4.4.jar : lib 폴더에 복사

2) MybatisManager.java : mybatis framework을 실행할 수 있는 세션 생성

3) sqlMapConfig.xml : mybatis 기본설정 파일

4) mapper 파일  : 실제 sql query 문장

 

 

* 특징

- 프로그래밍 코드로부터 SQL 코드를 분리
- 입력 매개변수를 라이브러리 클래스로 전달하고 출력
- 비즈니스 로직 클래스로부터 데이터액세스클래스를 분리
- 트랜잭션 관리 가능

* 사용 방법

mybatis-3.4.1.jar 파일을 WEB-INF/lib 디렉토리에 복사

MybatisService.java와 sqlMapConfig.xml 파일을 Java Resource/src/config 패키지에 복사

sample.xml 파일을 활용하여 SQL 명령어 작성

 

2. ojdbc7 다운로드

 

다운로드 사이트 :  

ojdbc6  : https://mvnrepository.com/artifact/com.oracle/ojdbc6/12.1.0.1-atlassian-hosted

ojdbc7  :  https://mvnrepository.com/artifact/com.github.noraui/ojdbc7/12.1.0.2

ojdbc8 :  https://mvnrepository.com/artifact/com.github.noraui/ojdbc8

 

 

3. JSTL 다운로드 및 세팅

 

 

 

 

 

4. server.xml

		<Context docBase="macaronics-shoes-Shopping" path="/macaronics-shoes-Shopping"
					reloadable="true" source="org.eclipse.jst.jee.server:macaronics-shoes-Shopping" >
					<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver"
						loginTimeout="10" maxWait="5000" name="jdbc/pool" password="1111"
						type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:XE"
						username="system" />
			  </Context>

 

 

 

5. sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml 지시어 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 알리아스 설정 -->
    <!-- typeAlias type="전체경로" alias="별칭" -->
 <!--	<typeAliases>

	  <typeAlias type="emp.dto.EmpDTO" alias="e" />
	</typeAliases> -->
	
	<!-- db연결 참조코드 -->
	<environments default="">
		<environment id="">
			<transactionManager type="JDBC" />
			<dataSource type="JNDI">
				<property name="data_source" 
				value="java:comp/env/jdbc/pool" />
			</dataSource>
		</environment>
	</environments>
	<!-- 실제 sql query -->
	<mappers>
		<!-- 샘플 설정 -->
		<!-- <mapper resource="emp/mapper/emp.xml" /> -->	
		<mapper resource="mapper/board.xml"/>								
	</mappers>
	
</configuration>





 

 

6. class MybatisService

package config;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisService {
// SqlSessionFactoryBuilder => SqlSessionFactory
//		=> SqlSession	
	//SqlSession 객체 생성기
	private static SqlSessionFactory factory;
	static {
		try {
			// Java Resources의 src
			Reader r = Resources.getResourceAsReader("config/sqlMapConfig.xml");
			//SqlSessionFactory 생성기
			factory = new SqlSessionFactoryBuilder().build(r);
			r.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static SqlSessionFactory getFactory() {
		return factory;
	}
}

 

 

7. 연결 확인 테스트 

 

board.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="member">
<!-- id="태그의 식별자"
resultType="sql 명령어의 리턴타입(레코드의 자료형)" 
샵{변수} => 입력매개변수   -->

	<select id="memberlist" resultType="model.BoardBean"> 
		<![CDATA[ select *  from 
	(select A.* , Rownum Rnum from (select * from board order by ref desc, re_step asc) A ) 
 	where Rnum >= 1 and Rnum <= 5 ]]>	
	
	</select>
</mapper>




	
	
	

 

 

class BoardBean

public class BoardBean {
	private int num;
	private String writer;
	private String email;
	private String subject;
	private String password;
	private String reg_date;
	private int ref;
	private int re_step;
	private int re_level;
	private int readcount;
	private String content;
	
	

 

 

class BoardListTest

package model;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import config.MybatisService;

public class BoardListTest {

	SqlSession session=MybatisService.getFactory().openSession();
	
	public List<BoardBean> memberList(){
		List<BoardBean> items=new ArrayList<BoardBean>();
		Map<String,Object> map=
				new HashMap<String,Object>();		
		items = session.selectList("member.memberlist",map);
		return items;
	}
	
}

 

 

index.jsp

<%@page import="model.BoardListTest"%>
<%@page import="config.MybatisService"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>


<%=
	MybatisService.getFactory()

%>
<br>
Mybais 연결 테스트
<%
	
	BoardListTest test =new BoardListTest();
	out.print(test.memberList().toString());
%>

</body>
</html>

 

 

 

 

macaronics.net

소스 :  https://github.com/braverokmc79/jsp_sin

 

 

 

 

about author

PHRASE

Level 60  라이트

네 소원이 무엇이냐 하고 하느님께서 물으신다면, 나는 서슴지 않고 '내 소원은 오직 대한독립이오.' 하고 대답할 것이다. 그 다음 소원은 무엇이냐 하고 물으시면 나는 또 '우리나라의 독립이오.' 할 것이요, 또 그 다음 소원이 무엇이냐 하고 세 번째 물으셔도 나는 더욱 소리를 높여 '내 소원은 우리나라 대한의 완전한 자주 독립이오' 하고 대답할 것이다. -

댓글 ( 4)

댓글 남기기

작성