使用JDBC调用存储过程

来源:互联网 发布:windows dd命令详解 编辑:程序博客网 时间:2024/06/05 02:27

存储过程,相当于数据库中的函数或方法。
现举例来说明使用JDBC调用存储过程。

  • 编写存储过程(参看mysql文档)

    delimiter $$接收一个输入参数create procedure demoSp(in inputParam varchar(255), inout inOutParam varchar(255))begin       在传进来的字符串前加上zyxw---,然后将结果into到第二个参数select concat('zyxw---', inputParam) into inOutParam;end $$delimiter ;
  • 得到CallableStatement,并调用存储过程

    public class Demo5 {    // 调用存储过程    public static void main(String[] args) throws SQLException {        Connection conn = null;        CallableStatement st = null;        ResultSet rs = null;        try {            conn = JdbcUtils.getConnection();            // 得到CallableStatement,并调用存储过程            st = conn.prepareCall("call demoSp(?,?)");            // 设置参数,注册返回值,得到输出            st.setString(1, "叶磊磊");            st.registerOutParameter(2, Types.VARCHAR); // 告诉MySQL驱动输出的是什么类型,即数据库的类型,Types类中有所有数据库的常见类型             st.execute();            System.out.println(st.getString(2));        } finally {            JdbcUtils.release(conn, st, rs);        }    }}

    运行结果为:zyxw---叶磊磊

学了存储过程,将来对数据进行处理就有2种选择了。

  1. 在数据库里面写存储过程,对数据进行处理,然后在java程序里面直接调用存储过程,获取到处理完后的数据,直接显示即可。
  2. 不在数据库里面写存储过程,通过JDBC获取数据库中的数据,获取到了之后拿到程序里面写方法来处理,处理完后再显示。

什么情况下我们需要在数据库里面写存储过程来处理数据呢?
答:银行的数据处理一般用存储过程来实现。银行那些业务都是写好存储过程后给你,你去调用存储过程即可。在金融证劵领域用到的特别多,金融证劵领域的开发是不会用Hibernate框架,因为表结构不会对开发人员公开。

0 0
原创粉丝点击