您的位置:首页 > 数据库

JDBC调用SQL SERVER存储过程方法

2008-12-03 10:26 399 查看
/*
@xkzno varchar(20), 许可证编号,注意是对应网页中的6位数字编号
-- @projectid varchar(60), 项目ID
-- @zh varchar(100),幢号
-- @lc varchar(50), 楼层
-- @sh varchar(50), 室号
-- @ycmj numeric(18,2),预测面积
-- @scmj numeric(18,2),实测面积
-- @color varchar(10), 颜色代码(状态),对应网页中单元格的6位颜色代码,注意前面不要添加"#"
-- @tsbz varchar(10), 是否动迁配套房的标志 ●--动迁房 ☆--配套商品房 ''--其它非动迁配套房
-- @fwyt varchar(30), 房屋用途,绿色的单元格点入后的页面中"房屋类型"的对应值
-- @fx varchar(15), 房型,绿色的单元格点入后的页面中"房型"的对应值
-- @notes varchar(500), 备注,目前还没有用到 用''填入
-- @rowindex int, 本单元格在销控表中的行序号,从1开始计数(从左到右)
-- @colindex int, 本单元格在销控表中的列序号,从1开始计数(自上往下)
-- @savedate varchar(20) 保存日期,每天8:30前,日期为当前系统日期的前一天;如果是8:30~24点则是当前系统日期;格式 是:yyyy-

mm-dd
-- @saveindex int 保存表索引号,指定本记录保存的数据库表索引号 如:'t_house'+saveindex
*/

-------------JAVA SOURCE-------------------
try {

String username="sa";
String password="111111";
String dburl ="jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=scsdata";
Connection conn = DriverManager.getConnection(dburl,username,password);
CallableStatement proc = conn.prepareCall("{?=call sp_import_hlb(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");

//返回值+存储过程含16个参数
proc.registerOutParameter(1, Types.INTEGER); //带返回值参数 1为正确,其他为错误

proc.setString(2,mhouse.getXkzNo());
proc.setString(3, mhouse.getProjectID());
proc.setString(4, mhouse.getZh());
proc.setString(5,mhouse.getLc());
proc.setString(6, mhouse.getSh());
proc.setString(7, mhouse.getYcmj());
proc.setString(8,mhouse.getScmj());
proc.setString(9, mhouse.getColor());
proc.setString(10, mhouse.getTsbz());
proc.setString(11,mhouse.getFwyt());
proc.setString(12, mhouse.getFx());
proc.setString(13, "");
proc.setInt(14,mhouse.getRowIndex());
proc.setInt(15, mhouse.getColIndex());

//时间判断
Calendar cal = Calendar.getInstance();
cal.setTime(mhouse.getSavedate());

Calendar compCal = Calendar.getInstance();
compCal.setTime(mhouse.getSavedate());
compCal.set(Calendar.AM_PM, Calendar.AM);
compCal.set(Calendar.HOUR_OF_DAY, 8);
compCal.set(Calendar.MINUTE, 30);

if (cal.before(compCal)){
cal.add(Calendar.DATE, -1);
}

proc.setTimestamp(16, new Timestamp(cal.getTimeInMillis()));
proc.setString(17,mhouse.getTableIndex());

proc.execute();
return proc.getInt(1);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: