package gz.itcast.d_callable;
import gz.itcast.util.JdbcUtil;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
/**
* 使用callableStatement调用存储过程
* @author Administrator
*
*/
public class Demo1 {
private int id=1;
private String name="name";
//@Test
public void test1(){
Connection conn=null;
CallableStatement callStat=null;
ResultSet rs=null;
try {
//1.获取连接
conn=JdbcUtil.getConnection();
//2.准备sql
String sql="CALL pro_findById2(?,?)";
//3.预编译
callStat=conn.prepareCall(sql);
//4.设置参数
callStat.setInt(1, 6);
//5.发送参数,执行sql
rs=callStat.executeQuery();//调用存储过程的都是用executeQuery
//6.遍历结果
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
String gender=rs.getString("gender");
System.out.println("id:"+id+" name:"+name+" gender:"+gender);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}finally{
JdbcUtil.close(conn, callStat,rs);
}
}
@Test
public void test2(){
Connection conn=null;
CallableStatement callStat=null;
ResultSet rs=null;
try {
//1.准备连接
conn=JdbcUtil.getConnection();
//2.获取参数
String sql="CALL pro_findById2(?,?)";
//3.预编译
callStat=conn.prepareCall(sql);
//4.设置参数
callStat.setInt(1,4);//输入参数
//注册输出参数
callStat.registerOutParameter(2, java.sql.Types.VARCHAR);
//5.发送参数,执行过程
callStat.executeQuery();
//6.得到输出参数的值:
String result=callStat.getString(2);
System.out.println(result);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}finally{
JdbcUtil.close(conn,callStat,rs);
}
}
}
import gz.itcast.util.JdbcUtil;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
/**
* 使用callableStatement调用存储过程
* @author Administrator
*
*/
public class Demo1 {
private int id=1;
private String name="name";
//@Test
public void test1(){
Connection conn=null;
CallableStatement callStat=null;
ResultSet rs=null;
try {
//1.获取连接
conn=JdbcUtil.getConnection();
//2.准备sql
String sql="CALL pro_findById2(?,?)";
//3.预编译
callStat=conn.prepareCall(sql);
//4.设置参数
callStat.setInt(1, 6);
//5.发送参数,执行sql
rs=callStat.executeQuery();//调用存储过程的都是用executeQuery
//6.遍历结果
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
String gender=rs.getString("gender");
System.out.println("id:"+id+" name:"+name+" gender:"+gender);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}finally{
JdbcUtil.close(conn, callStat,rs);
}
}
@Test
public void test2(){
Connection conn=null;
CallableStatement callStat=null;
ResultSet rs=null;
try {
//1.准备连接
conn=JdbcUtil.getConnection();
//2.获取参数
String sql="CALL pro_findById2(?,?)";
//3.预编译
callStat=conn.prepareCall(sql);
//4.设置参数
callStat.setInt(1,4);//输入参数
//注册输出参数
callStat.registerOutParameter(2, java.sql.Types.VARCHAR);
//5.发送参数,执行过程
callStat.executeQuery();
//6.得到输出参数的值:
String result=callStat.getString(2);
System.out.println(result);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}finally{
JdbcUtil.close(conn,callStat,rs);
}
}
}