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 ...
随机推荐
- NetBeans issues and solutions.(build.xml and debug multiple projects)
Copy a directory to another directory when building the .jar in NetBeans in the build.xml file. Solu ...
- CentOS下用yum命令安装jdk【转】
一.使用yum命令安装 1.查看是否已安装JDK,卸载 [root@192 ~]# yum list installed |grep java java-1.8.0-openjdk.x86_64 ...
- Sql Server 生成连续时间段
方法一: declare @StartTime datetime declare @EndTime datetime set @StartTime ='2019-02-1 00:00' set @En ...
- beego 初体验 - orm - 增删改查
本文记录一下 beego orm 简单的增删改查,大牛请绕道. 首先,注册4个增删改查的路由: 其次,在 views 文件夹下增加对应的模板(页面): controller 类里写上增删改查的方法: ...
- mybatis3 date 的处理
<if test="startTime!=null and startTime!=''"> <![CDATA[ and DATE_FORMAT(create_ti ...
- 假如java类里的成员变量是自身的对象
假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了. 不过我想的肯定是错的,因为很多类的成员变量是自身对象,并且绝对无错,举个例子: Class A{ pr ...
- linux下安装mysql等信息
1.安装 apt-get update;// 第一次的时候,你更新一下你的软件包的源地址数据; apt-get install mysql-server 2.账号登陆 mysql -h localho ...
- 《大话设计模式》c++实现 状态模式
状态模式包含如下角色: Context: 环境类 State: 抽象状态类 ConcreteState: 具体状态类 2)适用场景: a)状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂 ...
- 【转】C#中base关键字的几种用法
base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法.例如: 2.1关于base调用基类构造函数 public c ...
- CS131&Cousera图像处理学习笔记 - L4&W2滤波和卷积
cs131: http://vision.stanford.edu/teaching/cs131_fall1617/ coursera: https://www.coursera.org/learn/ ...