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
}
對象