Crescendo Code

5월 11일 (목) - [ myBatis 어노테이션 기법 / 우편번호 검색기 / Simple 게시판 검색기능 구현 ] 본문

KIC 백엔드 수업

5월 11일 (목) - [ myBatis 어노테이션 기법 / 우편번호 검색기 / Simple 게시판 검색기능 구현 ]

Crecok 2023. 5. 12. 09:09
반응형

이전 수업 개념

 

 

Java / JSP 에서 사용하는 프레임워크

1. 프레젠테이션 티어

2. 비즈니스 티어

3. 데이터 티어

    - myBatis : SQL mapper 프레임워크 ( Java / SQL )

    - 기초 설정에 유의 : Java Progect / Web Project 

       - 프레임 워크의 위치

       - XML ( log4j.xml / myBatisConfig.xml / mapper.xml )

 

myBatis 프레임워크를 게시판에 적용

1. Model1 : Client - JSP - DAO - myBatis - DB

2. Model2 : Client - Servlet - XXXAction - DAO - myBatis - DB

 


 

◈ mapper file 여러 개 만들기

- 기본 베이스 설정 : MyBatisEmp 프로젝트의 안의 설정 파일들을 복사 및 붙여넣기

- mapper file 은 테이블 / 프로그램 종류에 따라 여러 개를 만들어 사용할 수 있다.

- 파일이 바뀌면 mapper.xml 파일의 mapper namespace 의 이름을 바꿔서 구별한다. 

 

 

▶ 기본적인 프로젝트 디렉터리 설정

 

 

 

▶ mapper1.xml ( 이름 전체 검색 ) - mapper namespace : mybatis1

<?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="mybatis1">
	<select id="selectparamlist1" resultType="model1.EmpTO">
		select empno, ename, job, mgr
		from emp
		where ename = #{ename}
	</select>
</mapper>

 

 

▶ mapper2.xml ( like를 통한 일부 검색 ) - mapper namespace : mybatis2

<?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="mybatis2">
	<select id="selectparamlist1" resultType="model1.EmpTO">
		select empno, ename, job, mgr
		from emp
		where ename like #{ename}
	</select>
</mapper>

 

 

▶ myBatisConfig.xml 파일의 mappers 태그 부분 수정

	<mappers>
		<mapper resource="model1/mapper1.xml" />
		<mapper resource="model1/mapper2.xml" />
	</mappers>

 

 

▶ mybatis01.jsp 파일 실행 테스트

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.EmpTO" %>

<%
String resource = "myBatisConfig.xml";

	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();
	
	try {
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession();
		
		// EmpTO to = (EmpTO)sqlSession.selectOne( "mybatis1.selectparamlist1", "SCOTT" );
		// List<EmpTO> lists = sqlSession.selectList( "mybatis1.selectparamlist1", "SCOTT" );
		List<EmpTO> lists = sqlSession.selectList( "mybatis2.selectparamlist1", "S%" );
		
		sbHtml.append( "<table>" );
		for( EmpTO to : lists ) {
			sbHtml.append( "<tr>" );
			sbHtml.append( "<td>" + to.getEmpno() + "</td>" );
			sbHtml.append( "<td>" + to.getEname() + "</td>" );
			sbHtml.append( "<td>" + to.getJob() + "</td>" );
			sbHtml.append( "<td>" + to.getMgr() + "</td>" );
			sbHtml.append( "</tr>" );
		}
		sbHtml.append( "</table>" );
		
	} catch( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if( is != null ) is.close();
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

- 주석 처리된 구문 중 selectOne을 사용하는 경우 아래 출력문에서 for문을 없애면 잘 실행된다.

 

mybatis01.jsp 실행 화면

 


 

◈ mapper file - sql id 예제

- sql 태그의 id 속성을 통해 공통된 sql 구문을 처리할 수 있다.

- 관련된(확장된) 기능은 https://mybatis.org/mybatis-3/ko/dynamic-sql.html 에서 확인할 수 있다. (동적 SQL)

 

 

▶ mapper1.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="mybatis1">
	<sql id ="userColumns">empno, ename, job, mgr, hiredate, sal, comm, deptno</sql>
    
	<select id="selectparamlist1" resultType="model1.EmpTO">
		select <include refid="userColumns" />
		from emp
		where ename = #{ename}
	</select>
    
	<select id="selectparamlist2" resultType="model1.EmpTO">
		select <include refid="userColumns" />
		from emp
		where ename like #{ename}
	</select>
</mapper>

 

 

 

▶mybatis01.jsp 코드 작성 후 실행

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.EmpTO" %>

<%
String resource = "myBatisConfig.xml";

	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();
	
	try {
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession();
		
		// EmpTO to = (EmpTO)sqlSession.selectOne( "mybatis1.selectparamlist1", "SCOTT" );
		List<EmpTO> lists = sqlSession.selectList( "mybatis1.selectparamlist1", "SCOTT" );
		// List<EmpTO> lists = sqlSession.selectList( "mybatis2.selectparamlist1", "S%" );
		
		sbHtml.append( "<table>" );
		for( EmpTO to : lists ) {
			sbHtml.append( "<tr>" );
			sbHtml.append( "<td>" + to.getEmpno() + "</td>" );
			sbHtml.append( "<td>" + to.getEname() + "</td>" );
			sbHtml.append( "<td>" + to.getJob() + "</td>" );
			sbHtml.append( "<td>" + to.getMgr() + "</td>" );
			sbHtml.append( "</tr>" );
		}
		sbHtml.append( "</table>" );
		
	} catch( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if( is != null ) is.close();
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

mybatis01.jps 실행 화면

 


 

◈ myBatis 구현의 두 가지 방법

1. XML 설정

2. Java ( POJO )  + Annotation

   - POJO ( Play Old Java Object ) : 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트

   - POJO는 상속이나 인터페이스의 구현도 있어서는 안된다.

 

 

◈ Select Annotation 예제 1

- 한 줄의 데이터 추출

 

 

▶ 기본 프로젝트 디렉터리 설정

 

 

▶ myBatisConfig.xml

- mappers 태그 부분 삭제

<?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>
	</environments>
</configuration>

 

 

▶ SqlMapperInter.java

package mapper;

import org.apache.ibatis.annotations.Select;
import model1.DeptTO;

public interface SqlMapperInter {
	@Select( "select deptno, dname, loc from dept where deptno=10" )
	public DeptTO selectByDeptno();
}

 

 

▶ mybatis01.jsp 코드 작성 후 실행

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		//
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		DeptTO to = mapper.selectByDeptno();
		
		sbHtml.append( "<table>" );
		sbHtml.append( "<tr>" );
		sbHtml.append( "<td>" + to.getDeptno() + "</td>" );
		sbHtml.append( "<td>" + to.getDname() + "</td>" );
		sbHtml.append( "<td>" + to.getLoc() + "</td>" );
		sbHtml.append( "</tr>" );
		sbHtml.append( "</table>" );
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

 


 

◈ Select Annotation 예제 2

- 여러 줄의 데이터 추출

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Select( "select deptno, dname, loc from dept" )
	public List<DeptTO> selectList();

 

 

▶ mybatis02.jsp 코드 작성 후 실행

<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>


<%

	String resource = "myBatisConfig.xml";

	InputStream is = null;
	SqlSession sqlSession = null;

	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		//
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		List<DeptTO> lists = mapper.selectList();
		
		sbHtml.append( "<table>" );
		for( DeptTO to : lists ) {
			sbHtml.append( "<tr>" );
			sbHtml.append( "<td>" + to.getDeptno() + "</td>" );
			sbHtml.append( "<td>" + to.getDname() + "</td>" );
			sbHtml.append( "<td>" + to.getLoc() + "</td>" );
			sbHtml.append( "</tr>" );
		}
		sbHtml.append( "</table>" );
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>


 

◈ Select Annotation 예제 3

- 전달받은 값으로 데이터 추출

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Select( "select deptno, dname, loc from dept where deptno=#{deptno}" )
	public List<DeptTO> selectListByDeptno( String deptno );
	// public List<DeptTO> selectListByDeptno( DeptTO to );

 

 

▶ mybatis03.jsp 코드 작성 후 실행

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>
<%@ page import="java.util.List" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		
		List<DeptTO> lists = mapper.selectListByDeptno( "10" );
		
		sbHtml.append( "<table>" );
		for( DeptTO to : lists ) {
			sbHtml.append( "<tr>" );
			sbHtml.append( "<td>" + to.getDeptno() + "</td>" );
			sbHtml.append( "<td>" + to.getDname() + "</td>" );
			sbHtml.append( "<td>" + to.getLoc() + "</td>" );
			sbHtml.append( "</tr>" );
		}
		sbHtml.append( "</table>" );
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

 


 

◈ emp 테이블에서 시작 글자로 사원명을 조회하는 jsp 작성

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Select( "select empno, ename, job, sal from emp where ename like #{ename}" )
	public List<EmpTO> selectListByEname( String ename );

 

 

 mybatis04.jsp 코드 작성 후 실행

<%@page import="model1.EmpTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.EmpTO" %>

<%@ page import="mapper.SqlMapperInter" %>
<%@ page import="java.util.List" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		List<EmpTO> lists = mapper.selectListByEname( "S%" );
		
		sbHtml.append( "<table>" );
		for( EmpTO to : lists ) {
			sbHtml.append( "<tr>" );
			sbHtml.append( "<td>" + to.getEmpno() + "</td>" );
			sbHtml.append( "<td>" + to.getEname() + "</td>" );
			sbHtml.append( "<td>" + to.getJob() + "</td>" );
			sbHtml.append( "</tr>" );
		}
		sbHtml.append( "</table>" );
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>


 

◈ Insert Annotation 예제

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Insert( "insert into dept2 values (#{deptno}, #{dname}, #{loc} )" )
	public int insert(DeptTO to);

 

 

▶ mybatis05.jsp 코드 작성 후 실행

<%@page import="model1.EmpTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>
<%@ page import="java.util.List" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		DeptTO to = new DeptTO();
		
		to.setDeptno( "60" );
		to.setDname( "기획부" );
		to.setLoc( "전주" );
		
		int result = mapper.insert( to );
		sbHtml.append( "결과 : " + result );
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

 


 

◈ Update Annotation 예제

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Update( "update dept2 set dname=#{dname} where deptno=#{deptno}" )
	public int update(DeptTO to);

 

 

▶ mybatis06.jsp 코드 작성 후 실행

<%@page import="model1.EmpTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>
<%@ page import="java.util.List" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		DeptTO to = new DeptTO();
		
		to.setDeptno( "60" );
		to.setDname( "회계부" );
		
		int result = mapper.update( to );
		if( result == 1 ) {
			sbHtml.append( "결과 : " + result );
		}

	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

 


 

◈ Delete Annotation 예제

 

 

▶ SqlMapperInter.java 파일에 아래 코드 추가

	@Delete( "delete from dept2 where deptno=#{deptno}" )
	public int delete(DeptTO to);

 

 

▶ mybatis07.jsp 코드 작성 후 실행

<%@page import="model1.EmpTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>

<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>

<%@ page import="model1.DeptTO" %>

<%@ page import="mapper.SqlMapperInter" %>
<%@ page import="java.util.List" %>

<%

	String resource = "myBatisConfig.xml";
	
	InputStream is = null;
	SqlSession sqlSession = null;
	
	StringBuilder sbHtml = new StringBuilder();

	try {
		
		is = Resources.getResourceAsStream( resource );
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
		
		sqlSession = sqlSessionFactory.openSession( true );
		
		sqlSession.getConfiguration().addMapper( SqlMapperInter.class );
		
		SqlMapperInter mapper = (SqlMapperInter)sqlSession.getMapper( SqlMapperInter.class );
		
		DeptTO to = new DeptTO();
		to.setDeptno( "90" );
		to.setDname( "회계부" );
		
		int result = mapper.delete( to );
		if( result == 1 ) {
			sbHtml.append( "결과 : " + result );
		}
		
	} catch ( IOException e ) {
		System.out.println( "[에러] " + e.getMessage() );
	} finally {
		if( sqlSession != null ) sqlSession.close();
		if ( is != null ) is.close();
	}
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= sbHtml %>
</body>
</html>

 


 

◈ mybatis - Annotation 기법으로 우편번호 검색기 만들기

 

완성자료 : F / 수업자료 / 우편번호 검색기 / MyBatis 프레임워크 애노테이션 방식 / ZipcodeMyBatisAnnotation

 


 

◈ mybatis - Annotation 기법으로 Simple 게시판 만들기

 

완성자료 : F / 수업자료 / 게시판 / simple 게시판 - MyBatis - Annotation 방식 / MybatisAnnotationModel1Ex01

 

 


 

◈ 게시판에 검색 기능 추가하기

- 검색창에 글 제목의 일부를 검색하면 해당되는 리스트의 글이 굵은 글씨로 변경

- 이후 페이지를 변경했다가 돌아와도 굵은 글씨 그대로 유지

 

Step1. Model1로 게시판을 구현하기

Step2. myBatis로 구현하기

 

F / 수업자료 / 게시판 / simple 게시판 (검색기능) - MyBatis - model1 / 검색 게시글만 출력 (굵은 글씨) / BoardSearch02

 

 

 

 

반응형
Comments