package com.zhao.practice726_3;java
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;sql
/**
* DBCallableStatement类
* @author Administrator
*
*/
public class DBCallableStatement {
/**
* 驱动字符串
*/
private static final String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
/**
* 链接数据库的URL
*/
private static final String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zhao726"; // 链接服务器和数据库Northwind
/**
* 用户名字符串
*/
private static final String USER= "sa";
/**
* 密码字符串
*/
private static final String PASSWORD = "3221682";
/**
* 数据库链接
*/
Connection conn = null;
/**
* CallableStatement
*/
CallableStatement stat = null;
static {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库链接
* @return
*/
private Connection getConnection(){
try {
conn = DriverManager.getConnection(dbURL, USER, PASSWORD);数据库
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 得到CallableStatement对象
* @param sql sql语句
* @return CallableStatement
*/
public CallableStatement getPreparedStatement(String sql){
try {
stat = getConnection().prepareCall(sql);
System.out.println(sql);
return stat;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 关闭全部打开的数据库链接
*/
public void close(){
try{
if(stat != null){
stat.close();
}
if(conn != null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
服务器
package com.zhao.practice726_3;sqlserver
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;测试
/**
* 测试类
* @author Administrator
*
*/
public class TestCallableStatement {.net
/**
* @param args
*/
public static void main(String[] args) {
String sql = "{call sp_sum(?,?,?)}";
DBCallableStatement db = new DBCallableStatement();
//得到CallableStatement对象
CallableStatement stat = db.getPreparedStatement(sql);
try {
//设置参数
stat.setInt(1, 4);
stat.setInt(2, 5);
//注册第三个参数为int类型
stat.registerOutParameter(3, Types.INTEGER);
if(!stat.execute()){
System.out.println(stat.getInt(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
db.close();
}
}server
}
对象