2014년 8월 28일 목요일

JDBC로 Oracle의 Stored Procedure 사용하기 예제[자바JSP/Servlet/JDBC/MiPlatform/XPlatform/교육/JSP/서블릿강좌/Spring교육잘하는곳/자바,JSP/spring/교육추천/JSP/JDBC실무교육]

/* Oracle Server에 작성된 Function */ 
/* Employees Table에서 이름을 넘겨주면 나이를 Return하는 함수 */ 
/* Employees Table LayOut */ 

SQL> desc employees; 
 이름                                      널?      유형 
 ----------------------------------------- -------- ---------------------------- 
 NUM                                      NOT NULL NUMBER(5) 
 NAME                                      NOT NULL VARCHAR2(15) 
 PHONE                                              VARCHAR2(20) 
 SEX                                      NOT NULL VARCHAR2(1) 
 AGE                                                NUMBER(2) 


function employ_age (v_name in employees.name%TYPE) return number 
is 
v_age number(3) := 0; 
begin 
  select age into v_age from employees 
  where  name = v_name; 
  return v_age; 
exception 
  when no_data_found or too_many_rows then 
      return v_age; 
end; 


// storedprocedure.html 
//action 부분은 적당히 수정하세요 
<html> 
<head><title>Stored Procedure Call Test </title></head> 
<body> 
<form name=myform action=/servlet/StoredProcedure method=get> 
성명 : <input type=text name=name> 
<input type=submit> 
</form> 
</body> 
</html>      

/* StoredProcedure.java */ 
/* Oracle의 Stored Procedure를 JDBC로 이용하는 예제입니다.  StoredProcedure.java*/ 
import java.io.*; 
import java.sql.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class StoredProcedure extends HttpServlet { 

  public void doGet(HttpServletRequest req, HttpServletResponse res) 
                              throws ServletException, IOException { 
    Connection con = null; 
    Statement stmt = null;    
    
    res.setContentType("text/html; charset=euc-kr"); 
    PrintWriter out = res.getWriter();  
    try { 
      // 오라클 드라이버를 Load 한다 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 데이타 베이스에 접속을 한다. 
      con = DriverManager.getConnection("jdbc:oracle:thin:@211.53.71.228:1521:wink", "scott", "tiger"); 
      
      // Statement object를 생성한다. 
  CallableStatement cstmt = con.prepareCall("{? = call employ_age(?) }"); 

      //Stored Procedure의 input value의 setting및 output value의 type설정 
  cstmt.registerOutParameter(1,Types.INTEGER); 
  cstmt.setString(2, han(req.getParameter("name")));  //Procedure의 parameter setting 
  cstmt.execute();                                    //CallableStatement 실행 

  int age = cstmt.getInt(1); 

  out.println("요청하신 " + han(req.getParameter("name")) + " 님의 나이는 " + age + " 입니다."); 


        catch(ClassNotFoundException e) {  
      out.println("Couldn't load database driver: " + e.getMessage()); 
    } 
    catch(SQLException e) {  
      out.println("SQLException caught: " + e.getMessage()); 
    } 
    finally {      // 언제나 데이타 베이스 연결을 종료한다. 
      try {        if (con != null) con.close();  } 
catch (SQLException ignored) { } 
    } 
  } 
  //한글변환 함수 
  public static String han(String Unicodestr) throws UnsupportedEncodingException {    
      if( Unicodestr == null)    
        return null;    
      return new String(Unicodestr.getBytes("8859_1"),"KSC5601");    
  }    

  






 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271639
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111165
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-15924
52 [주말주간]C#, ASP.NET마스터 오라클자바…01-311088
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-31827
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-31784
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191055
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-11953
47 [평일야간,주말주간]JAVA,Network&WEB&Framework 오라클자바…01-031459
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271639
45 [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… 오라클자바…12-191184
44 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) 오라클자바…12-141185
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111165
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-09937
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011095
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011359
39 [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌… 오라클자바…12-01829

댓글 없음:

댓글 쓰기