Java JDBC调用存储过程:无参、输入带参、输出及输出带参
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调用存储过程:无参、输入带参、输出及输出带参的更多相关文章
- java——jdbc调用存储过程
1,加载驱动: 2,获取连接 3,设置参数 4,执行: 5,释放连接 普通jdbc的执行过程: conn.prepareCall() 上面是一个调用存储过程的示例.
- JDBC调用存储过程,进参出参
今天做了一个数据表拷贝的功能,用到了存储过程,就写了一个java中用jdbc调用存储过程的代码,成功的实现了功能,晚上跑回家记录下 Connection conn = ConnectionUtil.g ...
- Java数据库连接——JDBC调用存储过程,事务管理和高级应用
一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...
- Java数据库连接--JDBC调用存储过程,事务管理和高级应用
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...
- JDBC调用存储过程
一. JDBC调用存储过程 (1)使用存储过程SQL编写的程序代码,等一段语句和控制流语句.在创建时被编译成机器代码和存储在数据库中的client转让. 存储过程具有以下优势: 1.所生成的机器代码被 ...
- JDBC(13)—JDBC调用存储过程和函数
步骤: JDBC调用存储过程和函数 步骤: ①:通过Connection对象的prepareCall()方法创建一个CallableStatement对象的实例,在使用Connection对象的pre ...
- java程序调用存储过程
java程序调用存储过程 PL/SQL子程序,很多情况下是给应用程序来调用的,所有我们要掌握使用其他编程语言来调用我们写好的存储过程.下面我们介绍下使用java调用Oracle的存储过程. ...
- JDBC调用存储过程的例子
下面是我学到了Oracle存储过程,在这里跟大家简单的分享一下利用JDBC调用存储过程的例子: 废话就不啰嗦,现在就直接上机代码. 首先我利用的是Oracle中默认的 scott 数据库里的 emp员 ...
- java程序调用存储过程和存储函数
java程序调用存储过程 jdbcUtil.java文件 package cn.itcast.oracle.utils; import java.sql.Connection; import java ...
随机推荐
- 7个Java项目,或许你的大学老师就会布置
前言: 有天吃饭和朋友聊天,说到大学老师布置的开发项目,结果我们一干人说出来的都基本一样,入门级别的计算器啦,稍微大一点的记事本啦,然后到后面的图书管理系统啊,购物网站啊-- 发现这些项目都是大学老师 ...
- GIt 修改上一次的提交(保持Change-Id不变即可)
背景: 代码提交到gerrit以后,发现提交不对或者缺少了某个文件的改动. 解决: 比如发现test.txt 文件忘记修改了 step1. vim test.txt 修改 step2. git add ...
- 搭建redsocks 测试环境
1. 先来谈谈pc的测试环境 socks5代理,因为要在centos下设置,没有yum到socks, 就安装ss5,wget http://jaist.dl.sourceforge.net/proje ...
- xcode如何支持8.0以下
1. shell打开 open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSuppor ...
- Selenium基础知识(六)下拉列表定位
1.下拉列表定位 要选择下拉列表中的元素,要先定位到,下拉列表元素,然后可以通过xpath去点击,表内内容 例如,百度搜索-->百度设置-->搜索设置-->选择下拉列表框内" ...
- 利用css伪类编写冒泡小三角
HTML代码 <div class="lf otherLogin"> <span>其他方式注册</span> <div class=&qu ...
- teragen/terasort_简化版
1, 关闭Hadoop安全模式 进入hdfs用户 su – hdfs Cd /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/bin hdfs dfs ...
- chrome 搜索 jsonView
1.打开 https://github.com : 2.搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview: ...
- MindMaster学习笔记
参考博客 http://blog.sina.com.cn/u/6406591976 作者名叫“MindMaster思维导图的博客 ”写了一系列关于思维导图的博客,可以去学习下. 1.其中有一篇比较详细 ...
- 深入解析Java反射(1) - 基础
深入解析Java反射(1) - 基础 最近正筹备Samsara框架的开发,而其中的IOC部分非常依靠反射,因此趁这个机会来总结一下关于Java反射的一些知识.本篇为基本篇,基于JDK 1.8. 一.回 ...