Java Web基础入门第五十四讲 使用JDBC调用存储过程

存储过程相当于数据库中的函数或方法。下面我会举例来说明如何使用JDBC调用存储过程。
首先,编写存储过程(参看MySQL文档)。
在这里插入图片描述
然后,得到CallableStatement对象,并调用存储过程。

package cn.liayun.demo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import cn.liayun.utils.JdbcUtils;

public class Demo5 {

	/**
	 * 调用存储过程
	 * @param args
	 * @throws SQLException 
	 */
	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, "liayun");
			st.registerOutParameter(2, Types.VARCHAR);// 告诉MySQL驱动输出的是什么类型,即数据库的类型,Types类中有所有数据库的常见类型。
			
			st.execute();//执行存储过程
			System.out.println(st.getString(2));
		} finally {
			JdbcUtils.release(conn, st, rs);
		}
	}

}

最后,运行以上程序,Eclipse控制台打印如下内容:
在这里插入图片描述
既然我们学了存储过程,那么将来对数据进行处理就有2种选择了。

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值