JDBC调用SQL SERVER存储过程方法

本文介绍了一段用于房产数据导入的Java源代码脚本,该脚本通过调用存储过程实现房产信息的批量录入。具体包括许可证编号、项目ID、幢号、楼层等详细字段的设置,并对时间进行了特定的条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

/*
    @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;
  }


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值