728x90
반응형

아이바티스(iBATIS) 도입 이유

ibatis 또는 Data Mapper 라고 한다.

java에서 Object를 사용함에 있어서, getXXX, setXXX 로의 접근은

사용법과 유지보수 측면에서 이미 standard 로 여겨지고 있다.

ibatis는 상당한 코딩의 축소로 인해 개발자로 하여금 지겨운 노가다에서 해방하게 해준다.

*spring app-servlet.xml 에 추가

<bean id="ibatisdao" class="member.dao.MemberIbatisDaoImpl"/>

 

*memberMapper.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap>

<!-- MemberDTO 클래스를 풀네임으로 안하고 이러한 별칭으로 부르겠다라고 정의

DB로부터 가져온 데이터를 저장할 객체를 지정하는 것을 의미

<typeAlias alia="memberDTO" type="member.dto.MemberDTO"/>

<!-- DB로부터 가져온 데이터를 클래스에 옮겨담기 위한 설정 Property는

멤버변수를 의미하고 column은 테이블의 필드명을 의미

컬럼명과 클래스의 멤버변수명이 동일하면 지정할 필요 없고 생략이 가능

id는 식별자, class는 위에 typeAlias에서 지정한 alias명

<resultMap id="memberResult" class="memberDTO">

<result property="id" column="id" />

<result property="password" column="password" />

...

</resultMap>

<!-- DB에 전달할내용을 의미. DB연동하는 모든 작업에 대해서 이렇게 작성하면

이것을 자바코드에서 불러서 쓸 수 있도록 객체를 생성하는 작업을별도로 해야한다.

select 태그 안에 적은 sql문의 수행결과를 resultMap에 넘겨주겠다는 의미

<select id="getMemberList" resultMap="memberResult">

select * from member

</select>

</sqlMap>

 

*SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMapConfig>

<transactionManager type="JDBC" commitRequired="false">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="oracle.-

<property name ="JDBC.ConnectionURL" -

"JDBC.Username, Password -

</dataSource>

</transactionManager>

<!-- 또다른 설정파일을 연결해서 사용할 수 있고 실제 일처리를 담당하도록 쿼리를

담고 있는 설정파일의 경로를 지정한다.

이는 스프링의 import와 비슷한 기능으로 resource의 패키지명을 . 이 아니라 / 로 표현한다.

<sqlMap resource="member/ibatis/memberMapper.xml"/>

<!-- List more here..

<sqlMap resource="com/spring/data/Order.xml"/>

<sqlMap resource="com/spring/data/Documents.xml"/>

</sqlMapConfig>

 

*클래스 파일 MemberIbatisManager.java

public class MemberIbatisManager {

//memberMapper.xml 파일에서 작업한 것을 자바코드로 연결시키기 위해서 사용하는객체

private static SqlMapClients sqlMapper;

//sqlMapConfig.xml 를 input하고 있고 이 객체를 통해서 memberMapper.xml 파일에 접근가능

Reader reader = Resources.getResourceAsReader("member/ibatis/SqlMapConfig.xml");

sqlMapper=SqlMapClientBuilder.buildSqlMapClient(reader);

reader.close();

----

public static List getMemberList() {

List list = null;

list=sqlMapper.queryForList("getMemberList");

return list;

}

}

... try - catch 감싸는부분 생략함.

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

UNIX vi명령어  (0) 2013.09.11
스프링에서 로그 찍기 slf4j  (0) 2013.09.11
Math.ceil  (0) 2013.09.10
오라클 rownum 을 이용한 페이징 처리 기초  (0) 2013.09.10
오라클 시퀀스 및 날짜 예약어  (0) 2013.09.10
728x90
반응형

Math.ceil

- 올림.

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

스프링에서 로그 찍기 slf4j  (0) 2013.09.11
ibatis 설정  (0) 2013.09.11
오라클 rownum 을 이용한 페이징 처리 기초  (0) 2013.09.10
오라클 시퀀스 및 날짜 예약어  (0) 2013.09.10
SimpleDateFormat 클래스  (0) 2013.09.10
728x90
반응형

SELECT *

FROM(

SELECT

ROWNUM RNUM,

T.*

FROM(

SELECT *

FROM

테이블명) T )

WHERE

RNUM > 0 AND RNUM <=10;

=> 오라클에서 사용하는 ROWNUM 함수

     조회된 레코드(ROW)의 NUMBER(순서값)을 가지는 가상의 컬럼이다

     조회하는 순간에 자동으로 ROWNUM이 생긴다.

     주로 페이징 처리에서 쓰이는 것 같군..

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

ibatis 설정  (0) 2013.09.11
Math.ceil  (0) 2013.09.10
오라클 시퀀스 및 날짜 예약어  (0) 2013.09.10
SimpleDateFormat 클래스  (0) 2013.09.10
<c:choose> <c:when> <c:otherwise> 태그  (0) 2013.09.10
728x90
반응형

오라클 시퀀스

- 시퀀스 생성후,, 시퀀스이름.NEXTVAL

오라클 날짜 예약어

- SYSDATE

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

Math.ceil  (0) 2013.09.10
오라클 rownum 을 이용한 페이징 처리 기초  (0) 2013.09.10
SimpleDateFormat 클래스  (0) 2013.09.10
<c:choose> <c:when> <c:otherwise> 태그  (0) 2013.09.10
PropertyPlaceholderConfigurer 사용법  (0) 2013.09.09
728x90
반응형

public static void main(String[] args) {

String str = "20130910";

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

DateFormat df = new SimpleDateFormat("yyyy/MM/dd");

try {

Date date =  sdf.parse(str);

System.err.println(date);

System.err.println(df.format(date));

} catch(Exception e) {}

}

20130910 형식의 날짜를 2013/09/10 으로 출력

728x90
반응형

+ Recent posts