博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC 调用存储过程代码示例
阅读量:5150 次
发布时间:2019-06-13

本文共 1360 字,大约阅读时间需要 4 分钟。

曾经有过一个两层构架的时代,前台就是界面,后台就是存储过程,存储过程把业务逻辑和数据操作一手包办了。

用存储过程写东西比较复杂,大部分Java程序员或许都对此不太了解,因为我们如今的三层架构使用高级语言来充当中间的业务逻辑层。但是这种东西关键时候还是很有用的,下面是一个简单例子:

 

DELIMITER $$  #分隔符重新定义

DROP PROCEDURE IF EXISTS `world`.`addUser`$$ /* 如果存储过程存在就将其删掉 */

CREATE PROCEDURE `world`.`addUser` (in pname varchar(45), in birthday date,in money float,out pid int)
BEGIN
    insert into user(name,birthday,money)values(pname,birthday,money);
    #last_insert_id()是MySql自带的系统方法,可以将当前线程最后一次插入的数据的id拿出来
    select last_insert_id() into pid;

END $$

DELIMITER ;

 

下面的代码调用该存储过程

 

 

public class PsTest {

    /**

     * @param args
     * @throws SQLException
     */
    public static void main(String[] args) throws SQLException {
        ps();
    }

    static void ps() throws SQLException {

        Connection conn = null;
        CallableStatement cs = null;//存储过程需要使用的statement继承自PreparedStatement
        ResultSet rs = null;
        try {
            // 2.建立连接
            conn = JdbcUtils.getConnection();
            // conn = JdbcUtilsSing.getInstance().getConnection();
            // 3.创建语句

            String sql = "{ call addUser(?,?,?,?) } ";//调用名为addUser的存储过程

            cs = conn.prepareCall(sql);
            cs.registerOutParameter(4, Types.INTEGER);//注册输出参数的位置和类型
            cs.setString(1, "ps name");
            cs.setDate(2, new java.sql.Date(System.currentTimeMillis()));
            cs.setFloat(3, 100f);

            cs.executeUpdate();

            int id = cs.getInt(4);

            System.out.println("id=" + id);

        } finally {
            JdbcUtils.free(rs, cs, conn);
        }
    }

}

转载于:https://www.cnblogs.com/flying607/p/3461548.html

你可能感兴趣的文章
解决node-sass安装不了的问题
查看>>
javaScript几个操作数组增减元素的函数
查看>>
PostgreSQL在何处处理 sql查询之三十九
查看>>
安装python
查看>>
html的框架标签
查看>>
从VB6迁移到VB.NET及相关问题
查看>>
Joomla3.1.1在64位win7下安装
查看>>
[转] Latex设置字体大小,加粗,加下划线,变斜体
查看>>
React子组件怎么改变父组件的state
查看>>
Metropolis-Hastings算法
查看>>
jquery 对几种常见input操作
查看>>
SQL语句统计每天、每月、每年的 数据
查看>>
洛谷P1282 多米诺骨牌
查看>>
maven打包日志输出优化-去掉泛型与过时的警告
查看>>
用CSS美化你的HTML
查看>>
LeetCode#189 Rotate Array
查看>>
潮流设计:15个创意的 3D 字体版式作品欣赏
查看>>
modern.IE – Web 开发必备的 IE 浏览器测试工具
查看>>
非常酷的国外网站导航设计案例欣赏
查看>>
40个优秀的单页网站设计范例(下篇)
查看>>