日期:2014-05-16  浏览次数:20509 次

用JDBC调用简单储存过程
package procudureTest;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BaseDB {

	private String driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=CityInfo";
	private String user = "sa";
	private String pwd = "123456";
	private Connection con = null;

	public BaseDB() {
		try {
			Class.forName(driverClass);
			con = DriverManager.getConnection(url, user, pwd);
		} catch (ClassNotFoundException e) {
			System.out.println("加载驱动失败");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("获得连接失败");
			e.printStackTrace();
		}
	}

	// 调用储存过程插入记录
	public void insertInfoTest() {
		try {
			String callSql = "{call pc_insertInfo(?,?,?,?)}";
			CallableStatement call = con.prepareCall(callSql);
			call.setInt(1, 100);
			call.setString(2, "title6");
			call.setString(3, "content6");
			call.setString(4, "linkman6");
			call.execute();
		} catch (SQLException e) {
			System.out.println("调用存储过程失败");
			e.printStackTrace();
		}

	}

	// 调用储存过程获得记录
	public void showInfoTest() {

		String callSql = "{call pc_selectInfo(?,?,?,?)}";
		try {

			CallableStatement call = con.prepareCall(callSql);
			call.setInt(1, 101);

			// 注册输出的参数,可以使用序列号,或命名参数,对应储存过程中的输出参数名称
			call.registerOutParameter(2, java.sql.Types.VARCHAR);
			call.registerOutParameter(3, java.sql.Types.VARCHAR);
			call.registerOutParameter(4, java.sql.Types.VARCHAR);
			call.execute();
			String type = call.getString(2);
			String title = call.getString(3);
			String content = call.getString(4);
			System.out.println("type:" + type);
			System.out.println("title:" + title);
			System.out.println("content:" + content);

		} catch (SQLException e) {
			System.out.println("调用pc_selectInfo储存过程出错");

			e.printStackTrace();
		}

	}

	public static void main(String args[]) {
		BaseDB db = new BaseDB();
		// db.insertInfoTest();
		db.showInfoTest();
	}

}

?