Java/Database SQL JDBC/CallableStatement
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>