java存储过程带参数_使用存储过程(带参数的)

由于学习完了 数据的展示 javabean我就以为我基本上可以很缓慢的做一些jsp的程序了,在这期间我有大概的看了一下jdbc的相关东西。当然很混乱,这时我想做一个分页的技术。这种思维还是在我上大学时候学习asp的技术时的固定思维,当时以为解决了分页就学会了asp,呵呵。等在学习。net的时候分页技术就相对简单了很多。这一点上现在我在学习java时候,还是很欣赏.net。不愧是微软的东西。做了两年。net了,现在又来学习java,真的感觉挺对不起我这两年的衣食父母的。可是为了赚更多的该死的人民币。我只能这样三心二意了。

好了下面言归正传,正是我调用存储过程的例子(带输入输出参数的)

private static String getTitleSql(String type, String startDate,

String endDate) throws DAOException {

DBconn db = null;

String sql = null; //须返回的sql语句

ResultSet rs = null;

Connection con = null;

CallableStatement call = null;

try {

db = new DBconn();

con = db.getConnection();

call = con.prepareCall("{call p_dtsgfztj_getsql_top(?,?,?,?,?)}"); //调用存储过程

call.registerOutParameter(4, java.sql.Types.VARCHAR); //登记输出参数为字符串(out)

call.registerOutParameter(5, java.sql.Types.INTEGER); //登记输出参数为数字(out)

call.setString(1, startDate); //为in参数赋值

call.setString(2, endDate); //为in参数赋值

call.setString(3, type); //为in参数赋值

rs = call.executeQuery(); //置入结果集中

sql = call.getString(4); //取出字符串

}

catch (ConnectionException e) {

throw new DAOException(e, "报表统计失败!");

}

catch (SQLException e) {

throw new DAOException(e);

}

finally {

if (rs != null) {

try {

rs.close(); //关闭结果集

}

catch (Exception e) {

e.printStackTrace();

}

}

if (call != null) {

try {

call.close();

}

catch (Exception ex) {

ex.printStackTrace();

}

}

if (con != null) {

try {

con.close(); //关闭连接

}

catch (Exception e) {

e.printStackTrace();

}

}

}

return sql;

}

-------------------------------------

弄这个的时候有一个很逗得小插曲,我把where条件整个的字符串作为参数写了一个存储过程。在查询分析器里是没有任何问题到的。结果到了java里就不可以了。总是所不能把varchar转换成int。活来只能放弃了。所以我现在想是不是call.setString(1, startDate); 只能设置某列的参数阿。而不能是一个where条件的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值