首页 > 软件开发 > 编程语言 >

java如何调用存储过程

来源:互联网 2023-03-17 00:25:40 187

java如何调用存储过程G6p办公区 - 实用经验教程分享!

java如何调用存储过程?G6p办公区 - 实用经验教程分享!

工具/原料

  • IntelliJ IDEA
  • MySQL

方法/步骤

  • 1

    调用存储过程遵循与创建准备好的语句类似的模式。G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 2

    您可以使用下图中的测试运行以前的salary_update procedure:G6p办公区 - 实用经验教程分享!

    @Testpublic void callStoredProc() throws SQLException { Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mytest", "root", "root"); CallableStatement stmt = conn.prepareCall("{call annual_salary_raise(?,?)}"); stmt.setInt(1, 4); stmt.registerOutParameter(2, Types.INTEGER); stmt.execute(); int updatedEmployees = stmt.getInt(2); Assert.assertEquals(1, updatedEmployees);}G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 3

    对于此测试, 假定在运行之前, 数据库中只有4名员工有资格获得加薪, 如下表中的数据所示。G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 4

    使用连接对象上的准备调用创建 "CallableStatement"。与 "PreparedStatement" 对象类似, 此处显示了要在数据库上运行的语句, 并将参数设置为问号。G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 5

    设置了所有不同的参数及其数据类型。请注意, JDBC 区分输出参数。这些都是在语句执行后收集的。G6p办公区 - 实用经验教程分享!

  • 6

    调用存储过程的字符串是特定于数据库的:G6p办公区 - 实用经验教程分享!

    {call ANNUAL_SALARY_RAISE(?, ?)}G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 7

    此字符串的结构因供应商而异。请注意, 您发起呼叫的方式在供应商之间可能有所不同。例如, 对 Oracle plsql 中同名存储过程的调用如下所示:G6p办公区 - 实用经验教程分享!

    conn.prepareCall("BEGIN ANNUAL_SALARY_RAISE(?, ?); ;");G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 8

    call周围是一个BEGIN...。结束块而不是大括号。参数仍由问号设置。G6p办公区 - 实用经验教程分享!

    java如何调用存储过程?G6p办公区 - 实用经验教程分享!

  • 8此文章非法爬取自百度经验
  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!G6p办公区 - 实用经验教程分享!


    标签: JAVA编程语言MYSQL

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码