JDBC之调用存储过程

来源:互联网 发布:淘宝质量保证保险 编辑:程序博客网 时间:2024/05/09 08:15

本文主要介绍一下如何使用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的子接口。

0 0
原创粉丝点击