'Computer > Link..' 카테고리의 다른 글
CodeLion 웹서비스 만들기 (0) | 2014.08.14 |
---|---|
프로그래밍 입문용 개발툴 HelloWorld (0) | 2014.08.14 |
Unity3D Korea (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
CodeLion 웹서비스 만들기 (0) | 2014.08.14 |
---|---|
프로그래밍 입문용 개발툴 HelloWorld (0) | 2014.08.14 |
Unity3D Korea (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
프로그래밍 입문용 개발툴 HelloWorld (0) | 2014.08.14 |
---|---|
안드로이드 Unity 게임만들기 (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
생활코딩 (0) | 2014.08.14 |
안드로이드 Unity 게임만들기 (0) | 2014.08.14 |
---|---|
Unity3D Korea (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
생활코딩 (0) | 2014.08.14 |
HTTP 프로토콜 분석 (0) | 2014.08.14 |
안드로이드 Unity 게임만들기 (0) | 2014.08.14 |
---|---|
Unity3D Korea (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
생활코딩 (0) | 2014.08.14 |
HTTP 프로토콜 분석 (0) | 2014.08.14 |
안드로이드 Unity 게임만들기 (0) | 2014.08.14 |
---|---|
Unity3D Korea (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
HTTP 프로토콜 분석 (0) | 2014.08.14 |
안드로이드 Unity 게임만들기 (0) | 2014.08.14 |
---|---|
Unity3D Korea (0) | 2014.08.14 |
Unity3D 기초강의 (0) | 2014.08.14 |
HUB-AI (0) | 2014.08.14 |
생활코딩 (0) | 2014.08.14 |
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="abc" value=""></c:set>
<c:set var="att" value=""></c:set>
<c:set var="lat" value=""></c:set>
<c:set var="ear" value=""></c:set>
<c:if test="${b.att_checks ==0}">
<c:set var="abc" value="selected"></c:set>
</c:if>
<c:if test="${b.att_checks ==1}">
<c:set var="att" value="selected"></c:set>
</c:if>
<c:if test="${b.att_checks ==2}">
<c:set var="lat" value="selected"></c:set>
</c:if>
<c:if test="${b.att_checks ==3}">
<c:set var="ear" value="selected"></c:set>
</c:if>
<form>
<select class="form-control" id="chk_att" onchange="location = this.options[this.selectedIndex].value;">
<option id="1" value="attendanceUpdate.do?user_id=${a.user_id }&att_date=${b.att_date}&att_checks=1"
${att }>출석</option>
<option id="0" value="attendanceUpdate.do?user_id=${a.user_id }&att_date=${b.att_date}&att_checks=0"
${abc }>결석</option>
<option id="2" value="attendanceUpdate.do?user_id=${a.user_id }&att_date=${b.att_date}&att_checks=2"
${lat }>지각</option>
<option id="3" value="attendanceUpdate.do?user_id=${a.user_id }&att_date=${b.att_date}&att_checks=3"
${ear }>조퇴</option>
</select>
</form>
JSP SQL Injection 방어 기법 (0) | 2014.08.21 |
---|---|
JSP 버튼이벤트 (0) | 2014.08.19 |
JQUERY 화면전환 없이 비동기 업로드 (0) | 2014.08.18 |
JSP Modal 사용하기 (0) | 2014.08.14 |
JSP c:choose (0) | 2014.08.14 |
mybatis에서 테이블간의 1:N관계를 select 할때 resultMap을 통한 일종의 서브쿼리 형식으로 데이터를 가져올수 있다.
예를들어 게시판(BOARD)라는 테이블과 댓글(COMMENT)라는 테이블이 있고, 하나의 게시글에는 여러개의 댓글이 생성될수 있음으로 게시판과 댓글의 관계는 1:N관계이다.
이런 구조를 자바 코드로 클래스를 만들어 보면 다음과 같다.
class Board{
private String board;
private String title;
private String content;
private String writer;
private List<Comment> comments;
//getter, setter 생략
}
소스에서도 볼수 있듯이 Board라는 클래스는 comment의 List형태인 comments라는 프로퍼티를 가지고 있게된다.
이렇게 1:N의 구조일때 Mybatis에서는 쿼리를 저장하는 xml파일(iBatis에서는 sqlmap으로 불렀으나 mybatis에서는 mapper라고 부름)에 resultMap 엘리먼트로 다음과 같이 설정할 수 있다.
<resultMap id="boradResult" type="net.krespo.mybatis.Board">
<result property="boardid" column="BOARDID"/>
<result property="title" column="TITLE"/>
<result property="content" column="CONTENT"/>
<collection property="comments" column="BOARDID"
javaType="java.util.ArrayList" ofType="net.krespo.mybatis.Comment" select="getCommentListById"/>
</resultMap>
<select id="getBoardById" resultMap="boardResult">
SELECT boardid, title, content FROM board WHERE boardid = #{boardid}
</select>
<select id="getCommentListById" resultType="net.krespo.mybatis.Comment">
SELECT commentid, boardid, writer, content FROM comment WHERE boardid = #{boardid}
</select>
위와같이 getBoardById라는 쿼리는 게시글을 읽어올때 실행되는 쿼리이다.
이때 getBoardById는 resultMapboardResult를 지정하고 있고 boardResult의 collection선언을 통해(select="getCommentListByBoardId" 쿼리를 실행할때 parameter는 column으로 선언된 boardid를 가지고) 하위 댓글 리스트를 가져온다. 만약 댓글을 가져올때 자기가 쓴글에 자기가 쓴 댓글을 가져오려면 어떻게 해야할까?
그럴때는 boardid와 writer를 getCommentListById로 넘겨주어야 한다. 이처럼 여러개의 파라미터를 collection에서 넘길때는
column="{prop1=COLUMN1, prop2=COLUMN2}"
로 쓰면된다.
<collection property="comments" column="{boardid=BOARDID,writer=WRITER}"
javaType="java.util.ArrayList" ofType="net.krespo.mybatis.Comment" select="getMyCommentListById"/>
<select id="getMyCommentListById" parameterType="java.util.Map" resultType="net.krespo.mybatis.Comment">
SELECT id, writer, content FROM comment WHERE boardid = #{boardid} AND writer = #{writer}
</select>
로 쓰면 된다. 이때 select문에서 사용하는 파라미터명과 collection에서 선언한 column의 prop1, prop2명이 반드시 동일해야 한다.(column="{prop1prop2prop1prop2}) 그리고 또 반드시 주의 해야 할점은 파라미터가 한개만 전달할때는(맨 첫번째 예제인 게시글에 댓글을 가져올때) getCommentListById에 parameterType을 지정하지 않아도 됐었다. 그러나 위와 같이 collection으로 파라미터를 여러개 전달해야 할때는 반드시 parameterType="java.util.Map"을 지정해 줘야 한다.
Spring Mybatis 기본설정 (0) | 2014.09.26 |
---|---|
Spring 게시판 페이지 (0) | 2014.08.18 |
Spring GET방식 한글 깨짐 (0) | 2014.08.18 |
Spring 파일 다운로드 (0) | 2014.08.18 |
Spring 파일 업로드 (0) | 2014.08.18 |
cmd창
sqlplus hr/hr@127.0.0.1:1521/xe
세팅
set linesize 300
set pagesize 40
SQL Insert select update delete (0) | 2014.09.01 |
---|---|
SQL hr 계정 풀기 (0) | 2014.09.01 |
SQL Date 관련 함수 (0) | 2014.09.01 |
SQL Injection 방어기법 (0) | 2014.08.21 |
SQL Group by (0) | 2014.08.13 |
package com.redjava.java.collections.arraylist;
import java.util.ArrayList;
public class CollectionAddElement {
public static void main(String[] args) {
// arrayList 이름을 가진 ArrayList 생성
ArrayList arrayList = new ArrayList();
// ArrayList 에 element 추가
arrayList.add("1번");
arrayList.add("2번");
arrayList.add("3번");
// ArrayList 에 element 추가
arrayList.add("=> 4번");
arrayList.add("=> 5번");
// ArrayList의 element를 화면에 출력
System.out.println("index를 부여하지 않은 ArrayList elements");
for(int index=0; index < arrayList.size(); index++)
System.out.println(arrayList.get(index));
// ArrayList의 4번째와 5번째 element를 삭제
arrayList.remove(4);
arrayList.remove(3);
// ArrayList 에 index를 부여한 element 추가
arrayList.add(0,"=> 4번");
arrayList.add(1,"=> 5번");
// ArrayList의 element를 화면에 출력
System.out.println("index를 부여한 ArrayList elements");
for(int index=0; index < arrayList.size(); index++)
System.out.println(arrayList.get(index));
}
}
JDBC Date형 처리 (0) | 2014.08.14 |
---|---|
Java util.date sql.date 형변환 (1) | 2014.08.14 |
Java 확장 For 문 (0) | 2014.08.13 |
Java HashMap (0) | 2014.08.13 |
Java 16진수로 변환 (0) | 2014.08.12 |