java连接sqlserver 2005执行存储过程的几种情况

    java链接sqlserver 执行存储过程

package com.antianlu.test;

import java.sql.*;

import com.antianlu.dao.DBHelper;

public class CallProcedure {
	public static void main(String[] args)
	{
		try
		{
			//CallProcedure.InvokeProc();
			//InvokeProcParam();
			InvokeProcParamReturn();
		}
		catch(Exception e)
		{
			
		}
	}
	
	// 无参无返回的存储过程调用
	public static void InvokeProc() throws SQLException
	{
		try{
			Connection conn =  DBHelper.getConnection();
			CallableStatement cs = conn.prepareCall("{call TEST_SP_GetData}");
			ResultSet rs = cs.executeQuery();
			
			while(rs.next())
			{
				System.out.println(rs.getString(1));
			}
			DBHelper.closeAll(conn, cs, rs);
		}
		catch(Exception ex)
		{
			System.out.println(ex.getMessage());
		}
	}
	
	// 有参无返回存储过程调用
	public static void InvokeProcParam()
	{
		try{
			Connection conn =  DBHelper.getConnection();
			CallableStatement cs = conn.prepareCall("{call TEST_SP_GetDataBySim(?)}");
			cs.setString(1, "13106246066");
			ResultSet rs = cs.executeQuery();
			
			while(rs.next())
			{
				System.out.println(rs.getString(1));
			}
			DBHelper.closeAll(conn, cs, rs);
		}
		catch(Exception ex)
		{
			System.out.println(ex.getMessage());
		}
	}
	
	//有参有返回存储过程调用
	public static void InvokeProcParamReturn()
	{
		try{
			Connection conn =  DBHelper.getConnection();
			CallableStatement cs = conn.prepareCall("{?=call TEST_SP_GetDataBySimReturn(?)}");
			
			cs.registerOutParameter(1, Types.INTEGER);
			cs.setString(2, "131062");
			
			// 执行存储过程
			cs.execute();
			
			int result = cs.getInt(1);

			System.out.println(result);
			DBHelper.closeAll(conn, cs, null);
		}
		catch(Exception ex)
		{
			System.out.println(ex.getMessage());
		}
	}
}


你可能感兴趣的:(java连接sqlserver 2005执行存储过程的几种情况)