Java/Database SQL JDBC/CallableStatement

Материал из Java эксперт
Перейти к: навигация, поиск

Execute stored procedure

   <source lang="java">
 

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; public class Main {

 static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
 static String username = "username";
 static String password = "welcome";
 public static void main(String[] args) throws Exception {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   Connection conn = DriverManager.getConnection(url, username, password);
   CallableStatement stmt = conn.prepareCall("{call CREATE_USERS (?, ?, ?, ?, ?, ?)}");
   stmt.setString(1, "a");
   stmt.setString(2, "b");
   stmt.setString(3, "c");
   stmt.setString(4, "d");
   stmt.setString(5, "e");
   stmt.setString(6, "f");
   stmt.execute();
   conn.close();
 }

}


 </source>
   
  
 
  



Use CallableStmts to call a stored procedure

   <source lang="java">

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; public class CallableStmt {

 public static void main(String[] args) throws Exception {
   String driver = "oracle.jdbc.driver.OracleDriver";
   Class.forName(driver).newInstance();
   System.out.println("Connecting to database...");
   String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
   Connection conn = DriverManager.getConnection(jdbcUrl, "yourName", "mypwd");
   CallableStatement cstmt = conn.prepareCall("{call getEmpName (?,?)}");
   cstmt.setInt(1, 111111111);
   cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);
   cstmt.execute();
   String empName = cstmt.getString(2);
   System.out.println(empName);
   conn.close();

}

</source>