jdbc에서 mssql의 설정되지 않은 반환 매개 변수 저장 프로세스를 호출하는 반환 데이터 집합 예시

2332 단어 jdbcMicrosoftGoogle
jdbc 호출 저장 프로세스를 오랫동안 쓰지 않아서 모두 잊어버렸습니다. 그래서 자료를 찾았습니다. 보아하니 구글 두 페이지에서 반환 매개 변수 호출 저장 프로세스를 설정하지 않고 데이터 집합을 반환하는 정확한 방법을 찾지 못했습니다.
 
해봤는데 방법은 다음과 같다(대체적으로 주키, 코드 등은 세분화되지 않았다).
 
--------작성표 ------------------
 
CREATE TABLE tbl_user (
         id integer not null,
         name varchar(32) not null
       )

 
 
 
--------스토리지 구축 프로세스 ----------------
 
CREATE PRODUCE pro_user 
       AS
       BEGIN
           SELECT * FROM tbl_user
       END

 
 
 
 
--------jdbc 조회------------------
 
    	Connection conn = null;
	    CallableStatement call = null;
        ResultSet rs = null;
        
    	String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    	String url = "jdbc:microsoft:sqlserver://192.168.x.x:1433;DatabaseName=xxxxxx";
    	String name = "sa";
    	String password = "xx";
    	try {
    		Class.forName(className);

    		conn =  DriverManager.getConnection(url,name,password);

//        	call = conn.prepareCall("{?=call pro_user()}");
//        	call.registerOutParameter(1, Types.VARCHAR);

                //            
        	call = conn.prepareCall("{call pro_user()}");
                //           
        	//call = conn.prepareCall("{call pro_user('  1','...')}");
        	
        	rs = call.executeQuery();
        	while(rs.next()){
        		System.out.println(rs.getString("id") + ": " + rs.getString("name"));
        	}
    	} catch (ClassNotFoundException e) {
    	    	e.printStackTrace();
    	} catch (SQLException e) {
    	    	e.printStackTrace();
        } finally {
        	try {
        		if(rs != null)
        			rs.close();
        		if(call != null)
        			call.close();
        		if(conn != null)
        			conn.close();
        	} catch (SQLException e) {
        		e.printStackTrace();
        	}
        }

 
 
 

좋은 웹페이지 즐겨찾기