Java JDBC调用存储过程:无参、输入带参、输出及输出带参

示例代码:

package xzg;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types; public class JDBCtest {
public static void main(String[] args) {
//test();
//test2();
test3();
}
/*
* 命令行创建的存储过程函数为: create procedure all_user() select * from user;
* 创建一个查询所有内容的存储过程
* 调用无参存储过程
*/
static void test() {
Connection conn = Dbutil.open();
try {
//存储过程函数固定格式:{call xxx}
CallableStatement cs = conn.prepareCall("{call all_user()}");
ResultSet rs = cs.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
int age = rs.getInt(3);
System.out.println(id + "," + name + "," + age);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Dbutil.close(conn);
}
}
/*
* 命令行创建的存储过程函数为:
* create procedure insert_user(in myname varchar(20),
* in myage tinyint(20)) insert user(username,age) values(myname,myemail);
* 表示创建一个插入myname,数据类型为varchar(20); myage,数据类型为tinyint(20)的存储过程
* 调用输入带参存储过程
*/
static void test2() {
Connection conn = Dbutil.open();
try {
CallableStatement cs = conn.prepareCall("{call insert_user(?,?)}");
cs.setString(1, "jack");
cs.setInt(2, 10);
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
Dbutil.close(conn);
}
}
/*
* 命令行创建的存储过程函数为:
* create procedure getnamebyid(in cid int,
* out return_name varchar(20)) select username into return_name
* from user where id =cid;
* 表示创建一个如果id为cid,那么就输出返回一个return_name
* 调用输入、输出带参存储过程
*/
static void test3() {
Connection conn = Dbutil.open();
try {
CallableStatement cs = conn.prepareCall("{call getnamebyid(?,?)}");
cs.setInt(1, 3); //索引1,第3个id
//输出参数的话要注册
cs.registerOutParameter(2, Types.CHAR);
//注册后要更新
cs.execute();
String name =cs.getString(2); //这个是索引的意思
cs.executeQuery();
System.out.println(name);
} catch (SQLException e) {
e.printStackTrace();
} finally {
Dbutil.close(conn);
}
}
}

Java JDBC调用存储过程:无参、输入带参、输出及输出带参的更多相关文章

  1. java——jdbc调用存储过程

    1,加载驱动: 2,获取连接 3,设置参数 4,执行: 5,释放连接 普通jdbc的执行过程: conn.prepareCall() 上面是一个调用存储过程的示例.

  2. JDBC调用存储过程,进参出参

    今天做了一个数据表拷贝的功能,用到了存储过程,就写了一个java中用jdbc调用存储过程的代码,成功的实现了功能,晚上跑回家记录下 Connection conn = ConnectionUtil.g ...

  3. Java数据库连接——JDBC调用存储过程,事务管理和高级应用

    一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...

  4. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

  5. JDBC调用存储过程

    一. JDBC调用存储过程 (1)使用存储过程SQL编写的程序代码,等一段语句和控制流语句.在创建时被编译成机器代码和存储在数据库中的client转让. 存储过程具有以下优势: 1.所生成的机器代码被 ...

  6. JDBC(13)—JDBC调用存储过程和函数

    步骤: JDBC调用存储过程和函数 步骤: ①:通过Connection对象的prepareCall()方法创建一个CallableStatement对象的实例,在使用Connection对象的pre ...

  7. java程序调用存储过程

    java程序调用存储过程       PL/SQL子程序,很多情况下是给应用程序来调用的,所有我们要掌握使用其他编程语言来调用我们写好的存储过程.下面我们介绍下使用java调用Oracle的存储过程. ...

  8. JDBC调用存储过程的例子

    下面是我学到了Oracle存储过程,在这里跟大家简单的分享一下利用JDBC调用存储过程的例子: 废话就不啰嗦,现在就直接上机代码. 首先我利用的是Oracle中默认的 scott 数据库里的 emp员 ...

  9. java程序调用存储过程和存储函数

    java程序调用存储过程 jdbcUtil.java文件 package cn.itcast.oracle.utils; import java.sql.Connection; import java ...

随机推荐

  1. Nginx参数调优

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  2. git 查看某个文件的修改记录

    有几种方式, (1)如果是在linux环境下,比如centos,ubuntu之类的,建议安装tig命令 炒鸡好用,tig后面可以跟文件或者文件夹,比如: (1.1)tig  dir_name (1.2 ...

  3. [Java] Header checkBox in Jtable

    The reference is from here. 在Jtable里面我们可能会有checkbox, 而有时候我们有很多checkbox需要同时check或者同时uncheck的时候, 如果有一个 ...

  4. 获取 Google USB 驱动程序

    获取 Google USB 驱动程序       另请参阅 安装 USB 驱动程序 使用硬件设备 使用任何 Google Nexus 设备进行 ADB 调试时,只有 Windows 需要 Google ...

  5. cocosStudio制作ScrollView并在cocos2dx 3.0中使用。

    使用cocosStudio制作界面基本已成为基础了,之前都是拖动一些 Image.Button的小控件,再用到层容器和滚动层的时候,习惯性的用拖动来改变控件的大小.但是你在把其他的控件拖动到上面的时候 ...

  6. lsof命令简介

    lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...

  7. UVAL 3942 Remember the Word(递推+Trie)

    Remember the Word [题目链接]Remember the Word [题目类型]递推+Trie &题解: 蓝书P209,参考的别人公开代码 &代码: #include ...

  8. ZOJ 3690 Choosing number(矩阵)

    Choosing number [题目链接]Choosing number [题目类型]矩阵 &题解: 这题就和已经dp极像了,所以找方程就很困难了.可以这样找: 设f(n)是前n-1个人已经 ...

  9. React项目中使用Mobx状态管理(二)

    并上一节使用的是普通的数据状态管理,不过官方推荐使用装饰器模式,而在默认的react项目中是不支持装饰器的,需要手动启用. 官方参考 一.添加配置 官方提供了四种方法, 方法一.使用TypeScrip ...

  10. 008-副文本编辑器UEditor

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...