티스토리 뷰
728x90
Map타입으로도 가능하니
List타입으로도 한 번 시도해보자
기본설정
<?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;
}
}
package kr.co.goodee39.vo;
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;
}
}
쿼리문 선언하기
다수의 row를 출력하기 위해 resultType만 설정해주는데,
map과 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">
<!-- 다수의 row를 가져오기 -->
<select id="getList" resultType="map">
SELECT * FROM member
</select>
<select id="getListByVO" resultType="mvo">
SELECT * FROM member
</select>
</mapper>
List타입 내부에 Map 설정해 list 변수 선언하고, null로 초기화
VO를 제너럴로 갖는 List 타입 list2 변수 선언후 null 초기화
list, list2에 각각 쿼리문에서 설정한 map, mvo resultType맞게 id 설정해 쿼리 불러온다
<%@page import="kr.co.goodee39.vo.MemberVO"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.List"%>
<%@page import="org.apache.ibatis.session.SqlSession"%>
<%@page import="kr.co.goodee39.config.SqlSessionManager"%>
<%@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>
<%
SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
SqlSession sqlSession = sqlSessionFactory.openSession();
List<Map<String, Object>> list = null;
List<MemberVO> list2 = null;
try{
list = sqlSession.selectList("member.getList");
list2 = sqlSession.selectList("member.getListByVO");
}
catch(Exception e){
e.printStackTrace();
}
%>
<%for(Map<String, Object> map : list) { %>
<p>이름 : <%=map.get("NAME") %></p>
<p>아이디 : <%=map.get("ID") %></p>
<%} %>
<%for(MemberVO vo : list2) { %>
<p>이름 : <%=vo.getName()%></p>
<p>아이디 : <%=vo.getId()%></p>
<%} %>
</body>
</html>
결과
728x90
'(기초)그래서 뭘 배운거야? > Mybatis' 카테고리의 다른 글
MyBatis-10-INSERT/UPDATE/DELETE 수행하기 (0) | 2021.12.14 |
---|---|
MyBatis-08-#{}파라미터 주어지는 타입의 쿼리 출력 (0) | 2021.12.14 |
MyBatis-07-resultMap으로 관계 서술하고 쿼리 출력하기 (0) | 2021.12.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 긴문장
- pretag
- 정보처리기사필기
- 줄글
- imgtag
- 비전공
- 복습
- 2021년42회
- 2021년2회
- hn태그
- 합격
- marktag
- br tag
- 정보처리기사
- ptag
- tablespan
- html
- boldtag
- 93점
- definition List
- 단락태그
- tabletag
- 정처기
- usemap
- ul>li
- spantag
- 정보처리기사실기
- hr tag
- emtag
- ol>li
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함