Java는 SQL 서버 저장 프로시저를 호출합니다.

최근에 수업 마지막에 자바 언어 플랫폼을 이용해서 데이터베이스 시스템 개발을 했고 스토어드 프로시저의 호출을 이용했는데 책에 언급이 없어서 바이두를 확인하고 드디어 요약을 해봤습니다( 서투른 글을 용서해주세요)

매개변수가 없는 저장 프로시저 호출

매개변수가 없는 저장 프로시저가 가장 간단하지만 일반적인 데이터베이스 관리 시스템에서는 기본적으로 사용하지 않는 것 같다. 매개 변수가 없으면 데이터베이스의 쿼리문 기능을 만족할 수 있기 때문이다. java로 매개변수를 호출하는 방법. 먼저 T-SQL 문을 사용하여 저장 프로시저를 만듭니다.

create proc student
as
select st_id,st_name 
From st_info

st_info 테이블에서 학생 번호와 이름을 쿼리하는 저장 프로시저를 만듭니다.

Java는 학생 저장 프로시저(키 코드)를 호출합니다.

	try {
	Connection con = null;
   	ResultSet res = null;  
        PreparedStatement statement = null;		 
            Class.forName(cfn);
            con = DriverManager.getConnection(url,"sa","123");
            statement = con.prepareStatement();
            res = statement.executeQuery("{call dbo.student}");//调用student存储过程
            while(res.next()){
                String stid = res.getString("st_id");//获取st_id列的元素         
		String stname=res.getString("st_name");
            }
            
        } catch (Exception a) {
            // TODO: handle exception
            a.printStackTrace();
        }               

입력 매개변수를 사용한 저장 프로시저 호출

먼저 T-SQL 문을 살펴봅니다.
create proc clname @stid nchar(10)
as
select c_name,c_no,score
from st_info
where st_id=@stid

입력 매개변수가 있는 저장 프로시저는 입력 SQL 매개변수를 변환하는 명령문을 찾습니다. 이 명령문은 입력 매개변수 값의 형식과 유형에 따라 setInt() 또는 setString() 메서드입니다.
try{
		Connection con = null;
         Class.forName(cfn);
         con = DriverManager.getConnection(url,"sa","12345");
        ResultSet res = null;
PreparedStatement pstmt=con.prepareStatement("{call dbo.clname(?)}");//带一个输入参数占位符为?
pstmt.setString(1,"0603060108");//参数的输入值
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString("c_name") + ","+rs.getString("c_no") +","+rs.getString("score"));
}
rs.close();
pstmt.close();
}
catch(Exception e){
e.printStackTrace();
}
이 코드 호출 dbo.clname(?)에서 "?"는 SQL에서 저장 프로시저의 입력 매개변수를 생성하는 위치를 의미합니다. "?"는 몇 개의 입력 매개변수이며 pstmt.setString(1,0603060108)은 저장 프로시저에서 첫 번째 매개 변수의 입력 값은 "0603060108"입니다. 저장 프로시저에 파라미터 값이 2개 있으면 {call dbo.stored procedure name(?,?)}; ptstmt.setString(1,"xxxx");ptstmt.steString(2,"xxxx" ); 이 양식





추천

출처blog.csdn.net/AAAAAAAKing/article/details/53458402