您的位置:首页 > 其它

JDBC之调用存储过程

2016-07-23 12:47 281 查看
本文主要介绍一下如何使用JDBC调用存储过程。

首先我们在t_book表的基础上新建一个存储过程,这个存储过程读取书本的编号,然后返回书本的名称。

DELIMITER &&
CREATE PROCEDURE getBookNameById(IN bookId INT,OUT bN VARCHAR(20))
BEGIN
SELECT bookName INTO bN FROM t_book WHERE id=bookId;
END
&&
DELIMITER ;


如果没有看之前的博客,t_book表的创建如下:

create table `t_book` (
`id` int (11),
`bookName` varchar (60),
`author` varchar (30),
`price` Decimal (8),
`bookTypeId` int (11)
);


可以通过在SQL中调用存储过程来确定语句是否正确。

CALL pro_getBookNameById(4,@bookName);
SELECT @bookName;


下面就是使用JDBC调用存储过程并且返回查找结果。

private static String getBookNameById(int id) throws Exception {
Connection con = dbUtil.getCon();
String sql = "{CALL pro_getBookNameById(?,?)}";
CallableStatement cstmt = con.prepareCall(sql);
cstmt.setInt(1, id);
cstmt.registerOutParameter(2, Types.VARCHAR);
cstmt.execute();
String bookName = cstmt.getString("bN");
dbUtil.close(cstmt, con);
return bookName;
}


其中CallableStatement是PreparedStatement的子接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdbc