database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 24927 게시물 읽기
No. 24927
MySQL 5.0 stored procedure 리턴형식 질문드립니다.
작성자
한상길(girihan)
작성일
2006-01-04 04:40ⓒ
2006-01-04 13:30ⓜ
조회수
3,129

안녕하세요. MySQL 5.0 사용해서 프로그램을 개발하려고 합니다.

select var1, var2

from test

구문을 프로시져로 작성하고 자바 애플리케이션에서 프로시져 콜을 하려고 합니다.

이때 자바의 ResultSet으로 데이터를 받으려고하는데, 프로시져에서 질의결과(질의 결과가 여러개의 튜플)를 어떻게 자바응용프로그램으로 리턴해야하는지 궁금합니다.

커서를 사용할 경우 커서 자체를 리턴할 수도 있는지 궁금합니다. fetch를 할 경우 마지막 값만 리턴이 되어서 문제가 됩니다.

 

이 글에 대한 댓글이 총 1건 있습니다.

도움이..되실련지.. ^^

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

[SP Script]

DROP PROCEDURE IF EXISTS TEST_SEL;
CREATE TABLE test (seq int, a varchar(50), b varchar(50));
DELIMITER //

CREATE PROCEDURE TEST_SEL()
BEGIN
 select * from test;
END
//
DELIMITER ;

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

[Java TEST 소스]

import java.io.*;
import java.util.*;
import java.sql.*;
import java.text.*;

public class TestMySQL {   
       
    public static void main(String args[]){
                           
       Connection con = null;
        String CLASS_NAME = null;
        String DB_URL = null;
        String USR = null;
        String PASSWD = null;
        PreparedStatement stmt    = null;  
        ResultSet rs            = null;  
       int i=0;

        try {                     

            CLASS_NAME        = "com.mysql.jdbc.Driver";
            DB_URL            = "jdbc:mysql://localhost:3306/test";
            USR                = "root";
            PASSWD            = "root";
                                   
            System.out.println("MySQL db연결");
            Class.forName(CLASS_NAME);
            con    = DriverManager.getConnection(DB_URL,USR,PASSWD);
            con.setAutoCommit(false);

            stmt = con.prepareStatement(" call test_sel()" );
            rs = stmt.executeQuery();
                while(rs.next()){       
                    System.out.println("COL 1:" + rs.getString(1));
                    System.out.println("COL 2:" + rs.getString(2));
                    System.out.println("COL 3:" + rs.getString(3));
     i++;
                }
                System.out.println("COUNT:" +i);
            rs.close();
            stmt.close();
            con.close();
                                   
        }catch(SQLException e) {
            System.out.println("TestMySQL main Error : " + e.toString());
            System.out.println("TestMySQL main SQLSTATE : " + e.getSQLState());
            System.out.println("TestMySQL main ERROR_CODE : " + e.getErrorCode());
        }catch (Exception e) {
            System.out.println("TestMySQL main Error : " + e.toString());
            System.out.println("TestMySQL main Error : " + e.getMessage());
        }finally{                                
            System.out.println("MySQL 결과 END");
        }   
    }   
}

최학순님이 2006-01-06 15:04에 작성한 댓글입니다.
이 댓글은 2006-01-06 15:07에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
24932가장 최근에 들어갔던 데이터만 쿼리할려면... [1]
builder
2006-01-04
1831
24931입출력 빈번한 테이블의 lock 문제 [1]
음냐
2006-01-04
2565
24929C API mysql_query() 에 대해...
오호~
2006-01-04
1443
24927MySQL 5.0 stored procedure 리턴형식 질문드립니다. [1]
한상길
2006-01-04
3129
24926mysqld의 메모리 증가... ㅠ.ㅠ [11]
Rem
2006-01-03
21801
24925INDEX 의 사용. [11]
jude
2006-01-03
5305
24924php상에서 쿼리문 사용할때 궁금한 점이 있습니다.
으노
2006-01-03
1039
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다