| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- D2coding 폰트 다운로드
- 전체 페이지 데이터베이스
- 노션 데이터베이스 전환
- 노션 데이터베이스 활용
- visual studio code
- D2Coding
- 노션
- 노션 데이터베이스
- 노션 텍스트 블록
- 인라인 데이터베이스
- Notion
- 노션 하위 페이지
- VS Code
- D2coding 폰트
Crescendo Code
5월 11일 (목) - [ myBatis 어노테이션 기법 / 우편번호 검색기 / Simple 게시판 검색기능 구현 ] 본문
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문을 없애면 잘 실행된다.

◈ 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>

◈ 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
'KIC 백엔드 수업' 카테고리의 다른 글
| 5월 15일 (월) - [ AJAX 추가예제 / JQuery 예제 ] (0) | 2023.05.15 |
|---|---|
| 5월 12일 (금) - [] (0) | 2023.05.12 |
| 5월 10일 (수) - [ myBatis 프레임워크를 통한 우편번호 검색기 / Simple 게시판 구현 ] (1) | 2023.05.10 |
| 5월 9일 (화) - [ Core의 여러가지 기능 및 예제 / EL, JSTL을 통한 우편번호 검색기 / Dynamic → Maven 프로젝트 전환 ] (0) | 2023.05.09 |
| 5월 8일 (월) - [ 로그인 상태값 유지 / page / request / session / application / Cookie / EL / JSTL - Core ] (0) | 2023.05.08 |