How to Download and Install OPatch

Posted at 2011. 3. 22. 14:59 | Posted in Oracle Solution
반응형
오라클 제품을 사용하면서 긴급한 패치들은 OPatch 라는 것을 사용해서 패치를 적용하더군요...

동영상 : https://support.oracle.com/CSP/main/article?cmd=show&type=VIDEO&id=1194734.1:OPatchTool



1) Please download the latest OPatch version from My Oracle Support (MOS)

a) Click on the "Patches & Updates" tab

b) In the "Patch Name or Number" field type 6880880 // 이 번호로 검색을 하면 플랫폼별 OPatch 종류가 나옵니다.

c) In the "Platform" field select the relevant platform // 플램폼까지 선택을 하면 좀더 검색이 수월합니다. (짱 많이 나옴 -_-)

d) Click the Search button.


e) Select the patch that corresponds to the Oracle release installed:

6880880 Universal Installer: Patch OPatch 9i, 10.1
6880880 Universal Installer: Patch OPatch 10.2
6880880 Universal Installer: Patch OPatch 11.1
6880880 Universal Installer: Patch OPatch 11.2

f) Click the Download button // 적당한 버젼을 찾아서 다운로드 합시다!


The option to download patches from our FTP site (updates.oracle.com) is no longer available, but it is
possible to use the wget utility to download patches. For instructions on how to do this, please review
the response to the question "Will customers be able to download patches without having to use the My
Oracle Support interface?" in Note:841055.1.

NOTE: You will need to use the HTML version of My Oracle Support (supporthtml.oracle.com)
rather than the flash version (support.oracle.com) because of a known problem with copying the
patch URL.

2) Upload or move the ZIP file to ORACLE_HOME and unzip it:
 // ORACLE_HOME=/home/weblogic/Oracle/Oracle_SOA1

Example:
==================================================================

% mv p6880880_101000_SOLARIS64.zip $ORACLE_HOME
% cd $ORACLE_HOME
(If an OPatch directory already exist then move it)                                                                        
% mv Opatch OPatch_100057                                                                                                   
% unzip p6880880_101000_SOLARIS64.zip
Archive:  p6880880_101000_SOLARIS64.zip
   creating: OPatch/
   creating: OPatch/docs/
  inflating: OPatch/docs/FAQ        
  inflating: OPatch/docs/README.txt 
  inflating: OPatch/docs/Users_Guide.txt 
  inflating: OPatch/docs/bt1.txt    
  inflating: OPatch/docs/bt2.txt    
  inflating: OPatch/docs/tmp        
  inflating: OPatch/emdpatch.pl     
   creating: OPatch/jlib/
  inflating: OPatch/jlib/opatch.jar 
  inflating: OPatch/opatch          
  inflating: OPatch/opatch.bat      
  inflating: OPatch/opatch.pl       
   creating: OPatch/perl_modules/
  inflating: OPatch/perl_modules/Apply.pm 
  inflating: OPatch/perl_modules/AttachHome.pm 
  inflating: OPatch/perl_modules/Command.pm 
  inflating: OPatch/perl_modules/LsInventory.pm 
  inflating: OPatch/perl_modules/Query.pm 
  inflating: OPatch/perl_modules/RollBack.pm 
  inflating: OPatch/perl_modules/Version.pm 
  inflating: OPatch/perl_modules/XML.pm 
  inflating: OPatch/perl_modules/opatchIO.pm 
  inflating: OPatch/README.txt      
   creating: OPatch/ocm/
 extracting: OPatch/ocm/ocm.zip     
   creating: OPatch/ocm/doc/
  inflating: OPatch/ocm/doc/license.txt 
   creating: OPatch/ocm/lib/
  inflating: OPatch/ocm/lib/emocmutl.jar 
   creating: OPatch/ocm/bin/
  inflating: OPatch/ocm/bin/emocmrsp

% cd OPatch
% opatch version

Oracle Interim Patch Installer version 1.0.0.0.58
Copyright (c) 2007 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

OPatch Version: 1.0.0.0.58

(This will vary depending on the version installed)

==================================================================

3) Now you can set the OPatch directory in your PATH variable so you can execute the OPatch command from anywhere.

Example:
==================================================================

For Korn / Bourne shell
% export PATH=$PATH:$ORACLE_HOME/OPatch

For C Shell
% setenv PATH $PATH:$ORACLE_HOME/OPatch

반응형
//

간단한 JAVA 실행기(?)

Posted at 2011. 3. 21. 18:00 | Posted in Mini Project
반응형
http://antop.nerv.kr/java

아주 간단한 JAVA 코드 테스트 하려고 이클립스 키고 프로젝트, 클래스 만들고 하기 귀찮아서 웹에서 바로 테스트 해볼 수 있는 걸 만들어 봤습니다.

크게 Ext JS 3.3.1Spring 3.0.5를 사용 했습니다.



아래 화면이 실행 화면입니다. ㅎㅎ



JAVA 에서 main 메소드 안에 들어갈 내용을 작성하면 됩니다.

public class ? {

	public static void main(String[] args) {
		// 작성
	}

}
작성 후 "실행" 버튼을 누르면 sysout으로 출력된 결과를 볼 수 있습니다.

"저장" 버튼은 작성한 소스를 java 파일로 다운로드 받을 수 있습니다.

"로그 삭제" 버튼은 아래의 Console 로그를 삭제합니다.
 


아래 그림은 화면 레이아웃입니다.

실제 기능 구현 하는것보다 레이아웃 잡는게 훨~씬 손이 많이 가는군요 ㅠㅠ




아래 그림은 간단한 흐름입니다. 



사용자가 소스를 작성해서 "실행" 버튼을 누르면 ExtJS에 의햇 비동기 폼 서브밋이 됩니다.

그럼 스프링 MVC 에서 받아서 java 파일 작성하고, 컴파일하고, 실행해서 결과 클리이언트에게 보내줍니다. (JSON)



파일 다운로드의 경우에는 java 파일 작성까지만 하고 바로 다운로드 받게 합니다.



짜잘한 기술로는

- textarea에서 탭키로 들여쓰기 가능
- AJAX 환경에서의 파일 다운로드(IFRAME을 생성하여 그곳으로 파일 다운로드 요청)





※ java.io 패키지는 사용 할 수 없게 했습니다. ㅎㅎ

반응형

'Mini Project' 카테고리의 다른 글

Image Pyramid  (0) 2014.01.30
Proftpd Manager  (0) 2012.12.10
게시판 2.0  (5) 2011.07.27
Sudoku  (0) 2011.06.09
Forecast Repository  (8) 2010.11.30
Sales History API  (2) 2010.05.27
Order Entry API  (0) 2010.05.13
Human Resources API  (0) 2010.05.10
게시판 1.0  (1) 2010.03.11
비밀번호 생성기(Generate Password)  (1) 2010.02.10
//

Using AUTO_INCREMENT keys

Posted at 2011. 3. 1. 16:02 | Posted in Java+/Example
반응형

http://dev.mysql.com/tech-resources/articles/autoincrement-with-connectorj.html

http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/jdbc.html

MySQL 에는 AUTO_INCREMENT(이하 AI)라는 것이 있습니다. 오라클 디비의 시퀀스와 같이 자동으로 값이 증가하게 됩니다.

AI를 적용하려는 칼럼은 기본키K(Primary Key)여야 합니다.



Before JDBC API 3.0

JDBC API 3.0 이전에서는 INSERT 이후에 "select last_insert_id()" 쿼리를 날려서 추가된 AI 값을 가져와야 합니다.

Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; // auto increment value int generatedKey = -1; try { conn = dataSource.getConnection(); // query String sql = "insert into sample_user (name, age) values (?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getName()); pstmt.setInt(2, user.getAge()); // execute query pstmt.executeUpdate(); // query sql = "select last_insert_id()"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if(rs.next()) { // auto increment value generatedKey = rs.getInt(1); } return generatedKey; } catch (Exception e) { throw e; } finally { // release rs, pstmt, conn }



After JDBC API 3.0

3.0 부터서는 "getGeneratedKeys()" 메소드를 이용하면 됩니다.

Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; int generatedKey = -1; try { conn = dataSource.getConnection(); // query String sql = "insert into sample_user (name, age) values (?, ?)"; pstmt = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); pstmt.setString(1, user.getName()); pstmt.setInt(2, user.getAge()); // execute query pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { generatedKey = rs.getInt(1); } return generatedKey; } catch (Exception e) { throw e; } finally { // release rs, pstmt, conn; }



Spring + JdbcDaoSupport

스프링과 연동하여 사용할 때에는 KeyHolder 인터페이스를 이용하면 됩니다.

@Override
public int create(User user) throws Exception {
	// query
	String sql = "insert into sample_user (name, age) values (:name, :age)";
	// parameter
	SqlParameterSource paramSource = new BeanPropertySqlParameterSource(user);
	// key holder
	KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
	// execute query
	getNamedParameterJdbcTemplate().update(sql, paramSource, generatedKeyHolder);
	// auto increment
	return generatedKeyHolder.getKey().intValue();
}
※ KeyHolder 기능을 사용하려면 JDBC 드라이버가 JDBC 3.0을 지원해야 합니다.



샘플 소스입니다. (이클립스 Java Project 폴더 통째로 압축했씁니다. Buil Path 설정 해줘야 할지도...)

Spring 3.0 으로 되어있습니다. 간단한 DI만 이용...

kr/nerv/antop/config/spring.xml 파일에서 디비 설정 해줘야합니다.

테스트 클래스는 app.TestUserDao 입니다.

sample_mysql_ai.zip


반응형
//

테이블스페이스 및 테이블 관리 쿼리

Posted at 2011. 1. 27. 13:34 | Posted in Database/Oracle
반응형
테이블 스페이스 용량 확인
select
	b.file_name as file_name,
	b.tablespace_name as tablespace_name,
	b.bytes/1024 as total_size,
	((b.bytes-sum(nvl(a.bytes,0))))/1024 as used_size,
	(sum(nvl(a.bytes,0)))/1024 free_size,
	trunc((sum(nvl(a.bytes,0))/(b.bytes))*100,3) || '%' free_percent
from
	dba_free_space a, dba_data_files b
where
	a.file_id(+) = b.file_id
	-- and a.tablespace_name like 'DEV_%'
group by
	b.tablespace_name, b.file_name, b.bytes
order by
	b.tablespace_name;

테이블별 용량 확인
select
	segment_name,
	sum(bytes) as bytes
from
	dba_segments
where
	segment_type = 'TABLE'
	-- and owner like 'DEV_%' 
group by
	segment_name
order by
	bytes desc;



한번 늘어난 테이블스페이스(실제 파일)은 사이즈가 커지면 줄어 들지 않습니다. DBA 작업을 하지 않는 이상...

delete 문으로 데이터를 삭제할 경우 데이터는 삭제되지만 테이블의 공간을 차지하고 있습니다.

입력(insert)과 삭제(delete)를 반복해도 테이블의 용량은 계속 늘어나게 됩니다.

데이터가 풀차려고 하면 테이블을 정리해줘야합니다. (Table Shrink)

ALTER TABLE 테이블명 ENABLE ROW MOVEMENT;
ALTER TABLE 테이블명 SHRINK SPACE;
ALTER TABLE 테이블명 SHRINK SPACE CASCADE;
ALTER TABLE 테이블명 DISABLE ROW MOVEMENT;

반응형

'Database > Oracle' 카테고리의 다른 글

Oracle Database 10g Express Edition. HTTP 포트번호 변경  (0) 2009.03.09
Oracle 계정 생성  (1) 2009.02.16
//

Eclipse + STS (SpringSource Tool Suite)

Posted at 2011. 1. 16. 23:16 | Posted in Tools/Eclipse
반응형
http://www.springsource.com/developer/sts
http://dist.springsource.com/release/STS/doc/STS-installation_instructions.pdf

스프링 3.0을 지원하는 IDE인 STS[각주:1]를 이클립스 플러그인으로 설치하는 방법입니다.

※ STS를 사용하려면 이클립스 3.5이거나 3.6이여야 합니다.



이클립스 메뉴에서 Window - Preferences 클릭



Install/Update - Available Software Site 에서 사이트를 전부 Disabled 시킵니다.

그리고 Import 버튼을 클릭합니다.



이리 구해놓은 xml 파일을 선택합니다. (전 3.6 버전)






Update Site 2개가 추가 되었습니다.

OK 버튼을 클릭합니다.



다시 메뉴에서 Help - Install New Software 클릭합니다.



Work with 에서 아래와 같이 추가한 사이트를 선택하고, 설치하고자 하는 플러그인을 선택합니다. (전 몰라서 다 선택 -_-)



설치 내역 확인 후 OK



라이센스 수락 후 Finish



설치중....



설치 완료 후 메뉴에서 Help - About Eclipse 클릭 해보면 아래와 같이 플러그인이 추가되었습니다.



  1. SpringSource Tool Suite [본문으로]
반응형

'Tools > Eclipse' 카테고리의 다른 글

Eclipse JVM 경로 지정하기  (0) 2016.09.13
Eclipse + SVN Plugin  (1) 2012.03.29
Maven Integration for Eclipse  (0) 2012.02.20
Eclipse + TPTP Remote  (1) 2012.01.20
Eclipse + TPTP (Eclipse Test & Performance Tools Platform)  (4) 2012.01.01
Eclipse + MyBatis Generator  (1) 2011.07.04
installation Oracle Enterprise Pack for Eclipse  (2) 2011.05.22
Eclipse Plugins for JBoss technology  (1) 2011.01.11
Properties Editor  (1) 2009.11.17
UTF-8 설정  (0) 2009.11.16
//

Eclipse Plugins for JBoss technology

Posted at 2011. 1. 11. 11:29 | Posted in Tools/Eclipse
반응형
http://www.jboss.org/tools/download/update

http://www.jboss.org/tools/download



하이버네이트를 포함한 JBoss Tools 를 설치하는 방법입니다.

이클립스 버젼에 맞쳐서 깔아야 합니다.

Eclipse 3.3.x Europa - JBoss Tools 2.1 - http://download.jboss.org/jbosstools/updates/JBossTools-2.1.2.GA/

Eclipse 3.4.x Ganymede - JBoss Tools 3.0 - http://download.jboss.org/jbosstools/updates/stable/ganymede/

Eclipse 3.5.x Galileo - JBoss Tools 3.1 - http://download.jboss.org/jbosstools/updates/stable/galileo/

Eclipse 3.6.x Helios - JBoss Tools 3.2http://download.jboss.org/jbosstools/updates/development/

반응형

'Tools > Eclipse' 카테고리의 다른 글

Eclipse JVM 경로 지정하기  (0) 2016.09.13
Eclipse + SVN Plugin  (1) 2012.03.29
Maven Integration for Eclipse  (0) 2012.02.20
Eclipse + TPTP Remote  (1) 2012.01.20
Eclipse + TPTP (Eclipse Test & Performance Tools Platform)  (4) 2012.01.01
Eclipse + MyBatis Generator  (1) 2011.07.04
installation Oracle Enterprise Pack for Eclipse  (2) 2011.05.22
Eclipse + STS (SpringSource Tool Suite)  (1) 2011.01.16
Properties Editor  (1) 2009.11.17
UTF-8 설정  (0) 2009.11.16
//

Forecast Repository

Posted at 2010. 11. 30. 15:05 | Posted in Mini Project
반응형

2011년 2월 10일 - 수정 사항
 - json-taglib 수정(http://antop.tistory.com/99). 이에 따른 js에서 강제 파싱부분 제거
 - ExtJS 3.3.1 업그레이(아무 변화 없음 -_-) 및 필요한 라이브러리만 담음
 - IE에서 열라 느린거 해결 못함 ㅠ_ㅠ

forecast.part1.rar
forecast.part2.rar

해보시려면 sql(/WEB-INF/sql/*.sql)로 스키마 세팅하고, WEB-INF/applicationContext.xml 에서 DB 설정을 해줘야 합니다.

 


http://antop.nerv.kr/forecast


새로 개편하여 화면을 만들었습니다. 데이터베이스 구조만 빼고 완전 다 바뀌었군요....

  1. Cron을 이용하여 돌리던 배치(스케쥴링)를 Quartz를 이용(Spring과 연동)하여 처리 하였습니다.
  2. 화면은 ExtJS 3.2.1 + (Hightcharts 2.0.5 + jQuery 1.4.3)을 사용하였습니다
  3. 서버단은 쓰던대로 Spring 2.5.6.SEC02를 사용하였습니다.

아래 그림은 전체 흐름 구상입니다.



그림의 서버단은 다 따로 돌아가게 그려졌는데 -_-.. 다 스프링과 연동되어 돌아갑니다.

클라이언트에서는 풀 AJAX를 사용하고 서버에서는 url로 요청을 받고 json으로 응답합니다.

클라이언트의 레이아웃 구성은 아래 그림과 같습니다.



center의 tab panel의 레이아웃 구성은 아래와 같습니다.




Parameter

URL 요청 파라미터와 응답 아래와 같습니다.

- 현재날씨 목록 : http://antop.nerv.kr/forecast/whole.do?action=list&stn_id=100&from_date=2010-07-01&to_date=2010-07-14

 파라미터  필수  포맷  설명 
 stn_id  ○   숫자  지역 코드 
 from_date  ○   yyyy-MM-dd  시작 날짜
 to_date  ○  yyyy-MM-dd  마지막 날짜

- 현재날씨 상세 : http://antop.nerv.kr/forecast/whole.do?action=detail&stn_id=100&date=2010-07-08
 파라미터  필수  포맷  설명
 stn_id  ○  숫자  지역 코드
 to_date  ○  yyyy-MM-dd  날짜

- 현재날씨 제한 날짜 : http://antop.nerv.kr/forecast/whole.do?action=limit

- 현재날씨 지역 목록 : http://antop.nerv.kr/forecast/whole.do?action=stn


- 동네예보 목록 : http://antop.nerv.kr/forecast/town.do?action=list&area=1100000000&from_date=2010-08-02&to_date=2010-08-10
 파라미터  필수  포맷  설명
 area  ○  숫자(10자리)  지역 코드
 from_date  ○  yyyy-MM-dd  시작 날짜
 to_date  ○  yyyy-MM-dd  마지막 날짜

- 동네예보 상세 : http://antop.nerv.kr/forecast/town.do?action=detail&area=1100000000&date=2010-10-01
 파라미터  필수  포맷  설명
 area  ○  숫자(10자리)  지역 코드
 date  ○  yyyy-MM-dd  날짜

- 동네예보 제한 날짜 : http://antop.nerv.kr/forecast/town.do?action=limit

- 동네예보 지역 목록 : http://antop.nerv.kr/forecast/api.do?action=area
 파라미터  필수  포맷  설명
 parent  ×  숫자(10자리)  상위 지역 코드


- 주간예보 목록 : http://antop.nerv.kr/forecast/week.do?action=list
 파라미터  필수  포맷  설명
 location  ○  문자(8자리)  도시 코드
 from_date  ○  yyyy-MM-dd  시작 날짜
 to-date  ○  yyyy-MM-dd  마지막 날짜

- 주간예보 제한 날짜 : http://antop.nerv.kr/forecast/week.do?action=limit

- 주간예보 지방 목록 : http://antop.nerv.kr/forecast/api.do?action=province

- 주간예보 도시 코드 : http://antop.nerv.kr/forecast/api.do?action=location
 파라미터  필수  포맷  설명
 province  ×  문자(8자리)  지방 코드


Database Structure

테이블은 하이버네이트로 생성하였습니다.

동네예보



주간예보



전국예보



※ Toad Data Modeler 3.5 로 뽑아낸 데이터베이스 구조 입니다.












hey30 님의 질문 답변

아래는 조금 더 자세하게 그린 그림입니다.



이 프로젝트를 이해 하려면 최소한 'ExtJS'와 'Spring MVC', 'JSON' 정도는 아셔야 합니다. ㅠ_ㅠ

클라이언트단과 서버단은 완전히 분리 되어 있습니다. 100% AJAX[각주:2]로만 주고 받습니다.

클라이언트단은 꼭 ExtJS가 아니어도 되고, 서버단도 역시 뭘로 만들던지 JSON으로 응답만 하면 됩니다.



클라이언트에서 서버와 통신하는 객체는 JsonStore 밖에 없습니다. Store에서 알아서 서버에 요청 후 받아서 처리합니다.

store의 config properties를 autoLoad: true로 설정 하면 자동으로 요청 url을 만들어 서버단에 요청합니다.

그러면 서버단에서 contorller - (service - service impl) - (dao - dao impl) 을 거쳐서 controller에서 mav를 리턴하면 마지막에 해당 JSP 까지 가게 됩니다.

JSP에서는 jstl + json-taglib를 이용해서 JSON을 출력합니다.

그걸 다시 클라이언트단의 ExtJS Store에서 받아서 처리하게 됩니다.



vo(Value Object)는 뭐 자기가 정해서 쓰는거니.. 적당히.... ㅠ_ㅠ

  1. 계속해서 발생되는 자료를 축적하여 두었다가 일정 시점 단위로 일괄해서 처리하는 자료처리 방식으로서 배치 데이터 처리라고도 한다. [본문으로]
  2. 비동기 방식의 자바스크립트와 XML(Asynchronous JavaScript and XML). 웹상에서 JavaScript + CSS + DHTML + DOM + XMLHttpRequest + XML 등과 같은 현존하는 스크립트 언어를 통해서 서버와 통신을 하는 개발 방식 [본문으로]
반응형

'Mini Project' 카테고리의 다른 글

Image Pyramid  (0) 2014.01.30
Proftpd Manager  (0) 2012.12.10
게시판 2.0  (5) 2011.07.27
Sudoku  (0) 2011.06.09
간단한 JAVA 실행기(?)  (1) 2011.03.21
Sales History API  (2) 2010.05.27
Order Entry API  (0) 2010.05.13
Human Resources API  (0) 2010.05.10
게시판 1.0  (1) 2010.03.11
비밀번호 생성기(Generate Password)  (1) 2010.02.10
//
반응형
Spring + JDBC[각주:1]를 이용하여 개발 시에 queryForObject(...) 메소드를 사용하여 하나의 객체만 가져올 경우 해당 데이터가 없으면 org.springframework.dao.EmptyResultDataAccessException 예외가 발생하게 된다.

package kr.nerv.dao.impl;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
 
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport;
 
import kr.nerv.dao.UserInfoDao;
import kr.nerv.vo.UserInfoVo;
 
public class UserInfoDaoJdbc extends NamedParameterJdbcDaoSupport implements UserInfoDao {
    // row mapper
    private UserInfoRowMapper rowMapper = new UserInfoRowMapper();
    // find by id query
    private String findById = "select * from sample_user_info where id = :id";
 
    @Override
    public UserInfoVo findById(Integer id) throws Exception {
        Map param = new HashMap();
        param.put("id", id);
 
        // select 데이터가 없으면 EmptyResultDataAccessException 예외 발생!!
        return (UserInfoVo) getNamedParameterJdbcTemplate().queryForObject(findById, param,
                rowMapper);
    }
 
    private class UserInfoRowMapper implements RowMapper {
        @Override
        public UserInfoVo mapRow(ResultSet rs, int rowNum) throws SQLException {
            UserInfoVo userInfo = new UserInfoVo();
            userInfo.setId(rs.getInt("id"));
            userInfo.setName(rs.getString("name"));
            userInfo.setTel(rs.getString("tel"));
 
            return userInfo;
        }
    }
}

아래 소스를 보면 findById(Integer id) 메소드에서 PK로 하나의 데이터를 셀렉트 하게 되어 있다. 만약 데이터가 없으면 null이나 빈 VO[각주:2]를 리턴해주겠거니 하겠지만 예외를 발생하게 된다.이럴 때에는 예외 처리를 해주면 된다.

    @Override
    public UserInfoVo findById(Integer id) throws Exception {
        Map param = new HashMap();
        param.put("id", id);
 
        try {
            return (UserInfoVo) getNamedParameterJdbcTemplate().queryForObject(findById, param,
                    rowMapper);
        } catch (EmptyResultDataAccessException e) {
            // EmptyResultDataAccessException 예외 발생시 null 리턴
            return null;
        }
    }

예제 파일입니다.

EmptyResultDataAccessException.war



  1. 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로 SQL문을 실행 할 수 있는 함수 호출 인터페이스 이다. [본문으로]
  2. Value Object는 Presentation, Data 각 Layer 간의 데이터 전달을 위해 사용된다. 맴버변수와 맴버변수의 값을 설정하고 가져오기 위한 setter, getter 메소드만 존재한다. [본문으로]
반응형
//