mysql存储函数使用详细示例

sql语句:

创建存储函数用来返回购物车里所有物品的金额:
DROP FUNCTION IF EXISTS func_shop;
CREATE FUNCTION func_shop(id INT)
RETURNS DOUBLE(20,2)
BEGIN
	DECLARE out_money DOUBLE(20,2);
	SELECT SUM(sprice*snumber) INTO out_money FROM shopcart
	WHERE sid = id;
	RETURN out_money;
END;

在java中使用此函数:

//调用存储函数,得到购物车里金额的总和
	public double getSumMoney(int id) {
		Connection conn = null; // 数据库连接对象
		CallableStatement clbStmt = null; // CallableStatement对象
		double sum=0;
		try {
			// 获取数据库连接
			conn = JdbcUtils.getConnection();
			// 创建CallableStatement对象,调用存储函数
			clbStmt = conn.prepareCall("{? = call func_shop(?)}");
			clbStmt.setInt(2, id); // 获取顾客id
			// 输出值:商品的总和
			clbStmt.registerOutParameter(1, Types.DOUBLE);// 输出double类型
			// 执行调用存储函数
			clbStmt.execute();
			//获取输出的返回值
			sum = clbStmt.getDouble(1);
			System.out.println(sum);
		} catch (SQLException sqle) {
			sqle.printStackTrace();
		} finally {
			// 关闭数据库操作对象
			try {
				JdbcUtils.closeDB(conn, clbStmt);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return sum;
	}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值