Java/Database SQL JDBC/CallableStatement
Execute stored procedure
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();
}
}
Use CallableStmts to call a stored procedure
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();
}