! 현재 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
Test001.java
/*==================================================
Test001.java
- CallableStatement 를 활용한 SQL 구문 전송 실습
====================================================*/
package com.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.util.Scanner;
import com.util.DBConn;
public class Test001
{
public static void main(String[] args)
{
try
{
Scanner sc = new Scanner(System.in);
Connection conn = DBConn.getConnection();
do
{
System.out.print("이름 입력(-1종료) : ");
String name = sc.next();
if (name.equals("-1"))
break;
System.out.print("전화번호 입력 : ");
String tel = sc.next();
if (conn != null)
{
System.out.println("\n데이터베이스 연결 성공~!!!");
try
{
// 쿼리문 준비 check~!!!
String sql = "{call PRC_MEMBERINSERT(?, ?)}";
// CallableStatement 작업 객체 생성 check~!!!
CallableStatement cstmt = conn.prepareCall(sql);
// 매개변수 전달 check~!!!
cstmt.setString(1, name);
cstmt.setString(2, tel);
int result = cstmt.executeUpdate();
if (result > 0)
System.out.println("프로시저 호출 및 데이터 입력 완료~!!!");
} catch (Exception e)
{
System.out.println(e.toString());
}
}
} while (true);
DBConn.close();
System.out.println("\n데이터베이스 연결 종료~!!!");
System.out.println("프로그램 종료됨~!!!");
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}
// 실행 결과
/*
이름 입력(-1종료) : 김나다
전화번호 입력 : 010-2222-2222
데이터베이스 연결 성공~!!!
프로시저 호출 및 데이터 입력 완료~!!!
이름 입력(-1종료) : 이다라
전화번호 입력 : 010-3333-3333
데이터베이스 연결 성공~!!!
프로시저 호출 및 데이터 입력 완료~!!!
이름 입력(-1종료) : 한라마
전화번호 입력 : 010-4444-4444
데이터베이스 연결 성공~!!!
프로시저 호출 및 데이터 입력 완료~!!!
이름 입력(-1종료) : -1
데이터베이스 연결 종료~!!!
프로그램 종료됨~!!!
*/
Test002.java
프로시저 내부에서 SYS_REFCURSOR 를 사용하고 있기 때문에
OracleTypes.CURSOR 를 사용하기 위한 등록 과정이 필요한 상황.
1. Project Explore 상에서 해당 프로젝트 마우스 우클릭.
> Build Path > Configure Build Path 클릭.
2. 이후 열리는 대화창에서 Libraries 탭 클릭.
> 우측 Add External Jars 버튼 클릭.
3. 이때 열리는 파일 등록창에서
『ojdbc6.jar』 파일 추가 등록.
4. 『import oracle.jdbc.OracleTypes;』 구문 추가 등록
/*==================================================
Test002.java
- CallableStatement 를 활용한 SQL 구문 전송 실습
====================================================*/
package com.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import com.util.DBConn;
import oracle.jdbc.OracleTypes;
public class Test002
{
public static void main(String[] args)
{
try
{
Connection conn = DBConn.getConnection();
if (conn != null)
{
System.out.println("데이터베이스 연결 성공~!!!");
try
{
// 쿼리문 준비 check~!!!
String sql = "{call PRC_MEMBERSELECT(?)}";
// CallableStatement 작업 객체 생성 check~!!!
CallableStatement cstmt = conn.prepareCall(sql);
// 매개변수 전달 check~!!!
//cstmt.registerOutParameter(1, 오라클에서의커서);
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.execute();
ResultSet rs = (ResultSet)cstmt.getObject(1);
while (rs.next())
{
String sid = rs.getString("SID");
String name = rs.getString("NAME");
String tel = rs.getString("TEL");
/*
String str = String.format("%3s %7s %12s", sid, name, tel);
System.out.println(str);
↓
*/
System.out.printf("%3s %7s %12s\n", sid, name, tel);
}
rs.close();
cstmt.close();
} catch (Exception e)
{
System.out.println(e.toString());
}
}
DBConn.close();
System.out.println("\n데이터베이스 연결 닫힘~!!!");
System.out.println("프로그램 종료됨~!!!");
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}
// 실행 결과
/*
데이터베이스 연결 성공~!!!
1 박가나 010-1111-1111
2 김나다 010-2222-2222
3 이다라 010-3333-3333
4 한라마 010-4444-4444
데이터베이스 연결 닫힘~!!!
프로그램 종료됨~!!!
*/
! 현재 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
'JAVA개념&실습' 카테고리의 다른 글
WEB : [0525] 쿠키(Cookie) & 세션(Session) 개념 (0) | 2023.05.25 |
---|---|
WEB : 01. HTML 문법01 (0) | 2023.05.25 |
JDBC : 07. ScoreDTO/ScoreDAO/PreparedStatement/성적처리 실습 (0) | 2023.05.24 |
JDBC : 05. MemberDTO/MemberDAO/Statement/직원관리 실습 (0) | 2023.05.23 |
JDBC : 04. ScoreDTO/ScoreDAO/Statement/성적처리 실습 (0) | 2023.05.23 |