JDBC数据库编程:callableStatement接口
了解MySQL存储过程建立,
了解存储过程中参数传递的三种方式
了解callablestatement调用存储过程操作。
因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了解,不需要深入。
现在先建议一个存储过程;
- CREATE PROCEDURE myproc
- (
- IN p1 int,
- INOUT p2 int,
- OUT p3 int
- )
- BEGIN
- SELECT p1,p2,p3; -- 输出p1、p2、p3的内容
- SET p1=10 ;
- SET p2=20 ;
- SET p3=30 ;
- END
IN类型:默认设置,什么都不声明,只是将内容传递过来。
INOUT类型:表示把值传递到过程中,并且保持过程对值的修改。
OUT:可以不传递内容,过程对此值的操作可以返回。
- package 类集;
- import java.sql.Connection ;
- import java.sql.DriverManager ;
- import java.sql.SQLException ;
- import java.sql.CallableStatement ;
- import java.sql.Types ;
- public class ProcDemo{
- // 定义MySQL的数据库驱动程序
- public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
- // 定义MySQL数据库的连接地址
- public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ;
- // MySQL数据库的连接用户名
- public static final String DBUSER = "root" ;
- // MySQL数据库的连接密码
- public static final String DBPASS = "aaaaaa" ;
- public static void main(String args[]) throws Exception{ // 所有异常抛出
- Connection conn = null ; // 数据库连接
- CallableStatement cstmt = null ; // 数据库操作
- String sql = "{CALL myproc(?,?,?)}" ; // 调用过程
- Class.forName(DBDRIVER) ; // 加载驱动程序
- conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
- cstmt = conn.prepareCall(sql) ;
- cstmt.setInt(1,70) ; // 设置第一个参数是70
- cstmt.setInt(2,80) ; // 设置第二个参数是80
- cstmt.registerOutParameter(2,Types.INTEGER) ; //注册返回值类型,因为第二个和第三个参数分别是INOUT和OUT类型,所以有返回值,要注册类型。
- cstmt.registerOutParameter(3,Types.INTEGER) ;
- cstmt.execute() ; // 执行过程
- System.out.println("INOUT的返回值:" + cstmt.getInt(2)) ;
- System.out.println("OUT的返回值:" + cstmt.getInt(3)) ;
- cstmt.close() ;
- conn.close() ; // 数据库关闭
- }
- };
JDBC数据库编程:callableStatement接口的更多相关文章
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- JDBC数据库编程:ResultSet接口
掌握ResultSet接口 使用ResultSet接口进行查询 ResultSet接口 在JDBC操作中,数据库所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容. 常用方 ...
- JDBC数据库编程
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程 最基本的JDBC操作 本段内容主要完成JDBC的增删查改操作 packa ...
- Java高级篇(三)——JDBC数据库编程
JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC制定了统一访问 ...
- Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
- JDBC数据库编程(java实训报告)
文章目录 一.实验要求: 二.实验环境: 三.实验内容: 1.建立数据库连接 2.查询数据 2.1 测试结果 3.添加数据 3.1.测试结果 4.删除数据 4.1.测试结果 5.修改数据 5.1 测试 ...
- JDBC数据库编程基本流程
1.加载驱动类 Class.forName(""); 2.创建数据库连接 Connection con = DriverManager.getConnection(url, u ...
随机推荐
- Python中sorted函数的用法(转)
[Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序,在本地进行排序,不返 ...
- Maven环境配置及idea建Maven工程
https://blog.csdn.net/qq_37497322/article/details/78988378
- [TC14860]SquadConstructor2
[TC14860]SquadConstructor2 题目大意: 有\(n(n<2^m,m\le8)\)个互不相等的数\(v_i\).从中选取\(k(k\le8)\)个数\(b_i\),求\(\ ...
- Codeforces Beta Round #3 A. Shortest path of the king 水题
A. Shortest path of the king 题目连接: http://www.codeforces.com/contest/3/problem/A Description The kin ...
- iOS 11 安全区域适配
//解决iOS11,仅实现heightForHeaderInSection,没有实现viewForHeaderInSection方法时,section间距大的问题 [UITableView appea ...
- 源码安装redis初始化实例脚本
#!/bin/bash - #Date: -- #Auth: Jin version='2.8.7' progname='redis' pkgname="${progname}-${vers ...
- 利用tempo将json数据填充到html模板
1.下载tempo 2.使用 <!DOCTYPE html> <html> <head lang="zn-ch"> <meta chars ...
- Object.keys()的简单理解
1.对象的话返回属性名 var obj = {'a':'123','b':'345'}; console.log(Object.keys(obj)); //['a','b'] var obj1 = { ...
- !!! # @ --- ODATA 云驱动 --- 数据库发布 RESTFUL API
Cloud Drivers ODATA 云驱动 http://www.cdata.com/cloud/ Makes on-premise & cloud data sources ea ...
- javascript配置ckfinder的路径
<script type="text/javascript" src="ckfinder/ckfinder.js"></script> ...