티스토리 뷰

728x90
맨 처음에 VO를 만들어서 DB테이블의 모든 컬럼명, 타입을 필드로 선언하고
그에 대한 getter, setter 메소드를 만들었었다.
이걸 이용해서 한 번 쿼리문 결과를 JSP상에서 출력해보자

 

 

 

 

기본 설정 동일
<?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="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<!-- 마리아db 연결하기! -->
				<property name="driver" value="org.mariadb.jdbc.Driver" />
				<property name="url" value="jdbc:mariadb://localhost:3306/mydb3" />
				<property name="username" value="root" />
				<property name="password" value="0118" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- mapper에서 member.xml파일 가져옴 -->
		<mapper resource="kr/co/goodee39/dao/member.xml" />
	</mappers>
</configuration>
import java.io.Reader;

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

//기본설정
public class SqlSessionManager {
	public static SqlSessionFactory sqlSession;
	
	static {
		//config.xml에서 mapper로 member.xml가져온 파일을 여기서 받아옴
		String resource = "kr/co/goodee39/config/config.xml";
		Reader reader;
		
		try {
			reader = Resources.getResourceAsReader(resource);
			sqlSession = new SqlSessionFactoryBuilder().build(reader);
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static SqlSessionFactory getSqlSession() {
		return sqlSession;
	}
}
import org.apache.ibatis.type.Alias;

public class MemberVO {
	
	/*
	 * `ID` INT(10) UNSIGNED ZEROFILL NULL DEFAULT NULL,
	 * `PASSWORD` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	 * `NAME` VARCmemberHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	 * `AGE` INT(11) NULL DEFAULT NULL,
	 * `GENDER` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	 * `EMAIL` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci'
	 */
	
	//DB컬럼에 대한 필드 설정
	int id;
	String name;
	String password;
	int age;
	String gender;
	String email;
	
	//필드에 대한 GETTER, SETTER 메서드 설정
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	
}

 

 

출력할 쿼리문을 만들어보자
id를 선언해주고,
특이하게도 resultType이 VO의 경로이다
이거시 특징이지~
<?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">
  
  <!-- namespace는 member.xml을 칭함 -->
  <mapper namespace="member">
 
  	<!-- 맨 처음 사람만 호출하기 : VO로 받기 -->
  	<select id="getFirstMemberWithVO" resultType="kr.co.goodee39.vo.MemberVO">
  		SELECT * FROM member LIMIT 1;
  	</select>
 </mapper>

 

 

JSP상에서 뽑아보자 이제
MemberVO 타입으로 vo라는 변수 선언하되, null로 초기화한다
try~catch문 안에서 vo에 sqlSessions.selectOne()으로 id설정한 쿼리문 호출한다
p태그 내부에 getter메서드 이용해 결과 출력한다
<%@page import="kr.co.goodee39.vo.MemberVO"%>

<%@page import="kr.co.goodee39.config.SqlSessionManager"%>
<%@page import="org.apache.ibatis.session.SqlSession"%>
<%@page import="org.apache.ibatis.session.SqlSessionFactory"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- member.xml에서 데이터를 map 형태로 가져오기 -->
<%
	SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	SqlSession sqlSession = sqlSessionFactory.openSession();

	MemberVO vo = null;
	
	try {
		vo = sqlSession.selectOne("member.getFirstMemberWithVO");
	}
	catch(Exception e) {
		e.printStackTrace();
	}
%>
<p>VO출력 => 아이디 : <%=vo.getId() %> / 비번 : <%=vo.getPassword() %></p>
</body>
</html>

 

결과

 

member테이블

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 31
글 보관함