前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java调用存储过程(stored procedures)的HelloWorld例子

java调用存储过程(stored procedures)的HelloWorld例子

作者头像
马克java社区
修改2021-05-12 09:58:09
1K0
修改2021-05-12 09:58:09
举报
文章被收录于专栏:java大数据

1.java调用存储过程(stored procedures)的HelloWorld程序

马克-to-win:有点数据 库基础的人都知道。存储过程(stored procedures)和java没什么关系。它是一段纯粹的数据库sql语言的程序,事先存储在数据库中。没有java程序调用,人家自己独立运行的也 挺好。现在的问题就是,你有一个java程序,你想调用现有的一段存储过程,如何做这件事儿?我们底下的实验就是先向数据库存进去一个名为p4的存储过 程,然后再编一段java程序去调用它。

以下就是我向我的数据库中,插入一个叫做p4的存储过程的截图。

下 面解释一下:delimiter是定义边界的意思。delimiter $就是定义$为边界。一个$和下一个$之间就像一个区域一样,在这个区域之间的东西才会被执行。mysql缺省默认来讲见到 ;就执行,但看到delimiter $ 以后,就只会忍饥挨饿盯着直到下一个$出现,才会执行两个$之间的命令。

最后的delimiter ; 就把分隔符从$换回到默认的 ;(注意 delimiter后边一定有一个空格)

create procedure p4(OUT cnt int)

--创建MySQL存储过程p4

--此存储过程的过程名是p4,该过程包含1个参数,

--是输出类型的(以OUT标示),参数名是cnt,类型是int

select count(*) into cnt from test.login;

--再查询表test.login中count(*),将其输出到输出类型的参数cnt里面

call p4(@a);

调用p4存储过程,下面的@a是个mysql中的临时变量,就对应刚才的cnt。

顺便,如果想删除一个procedure,我们就用drop procedure p4;

mysql> use test

mysql> delimiter $

mysql> create procedure p4(OUT cnt int)

-> begin

-> select count(*) into cnt from test.login;

-> end

-> $

Query OK, 0 rows affected (0.00 sec)

-> delimiter ;

mysql> call p4(@a);

Query OK, 0 rows affected (0.00 sec)

mysql> select @a;

+------+

| @a |

+------+

| 2 |

+------+

1 row in set (0.00 sec)

下面的java程序就调用上面的p4存储过程。

例:4.1.1

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Types;

public class TestMark_to_win {

public static void main(String[] args) throws ClassNotFoundException,

SQLException {

String dbUrl = "jdbc:mysql://localhost:3306/test";

String user = "root";

String password = "1234";

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection(dbUrl, user, password);

System.out.println("Connection is ok");

CallableStatement cs = con.prepareCall("{call p4(?)}");

cs.registerOutParameter(1, Types.INTEGER);

cs.execute();

/*int getInt(int parameterIndex)

Retrieves the value of the designated JDBC INTEGER parameter as an int in the Java programming language.

Parameters:

parameterIndex - the first parameter is 1, the second is 2, and so on */

System.out.println(cs.getInt(1));

cs.close();

con.close();

}

}

result is:

Connection is ok

2

更多请见下节:https://blog.csdn.net/qq_44591615/article/details/109275570

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档