package Jdbcday02;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
public class TestCallableStmt {
static Connection conn=null;
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url=null;
url="jdbc:oracle:thin:@10.12.36.201:1521:xxxxxx";
conn=DriverManager.getConnection(url,"scott","tiger");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
callSpWithoutOutParam1();
}
public static void callSpWithoutOutParam(){
String sql="{call insert_sun(?,?,?,?)}";
try {
CallableStatement callStmt=
conn.prepareCall(sql);
callStmt.setInt(1, 28);
callStmt.setString(2,"sunzongbao");
callStmt.setInt(3, 22);
callStmt.setString(4, "M");
System.out.println(callStmt.execute());//callStmt.execute()返回false的时候是对表数据修改,返回结果集合的时候
//返回true,,,和statement的execute的方法是相同的
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void callSpWithoutOutParam1(){
String sql="{call insert_sun1(?,?)}";
try {
CallableStatement callStmt=conn.prepareCall(sql);
callStmt.setInt(1, 20);
callStmt.registerOutParameter(2, Types.INTEGER);
System.out.println(callStmt.execute());//callStmt.execute()返回false的时候是对表数据修改,返回结果集合的时候
//返回true,,,和statement的execute的方法是相同的
int n=callStmt.getInt(2);
System.out.println("部门20有"+n+"个员工");
} catch (SQLException e) {
e.printStackTrace();
}
}
}