java调用数据库存储过程的接口是_JAVA调用数据库存储过程
JAVA调用数据库存储过程
2014/11/6 18:20:14 可怜的猫 程序员俱乐部 我要评论(0)
摘要:packagecom.ljq.test;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/***连接工具类**ConnUtils类声明为final类说明此类不可以被继承*/publicfinalclassConnUtils{privatestaticStringurl="jdbc
package com.ljq.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 连接工具类
*
* ConnUtils类声明为final类说明此类不可以被继承
*/
public final class ConnUtils {
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "test";
private static String password = "test";
/**
* 说明要访问此类只能通过static或单例模式
*/
private ConnUtils() {
}
// 注册驱动 (只做一次)
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
/**
* 获取Connection对象
*
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
/**
* 释放资源
*
* @param rs
* @param st
* @param conn
*/
public static void free(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null)
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
--带出参存储过程
CREATE OR REPLACE PROCEDURE stu_proc(v_name OUT VARCHAR2) ASBEGIN SELECT o.sname INTO v_name FROM student o where o.id = 2;END;
Java调用存储过程
package com.ljq.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
public class ProceTest {
public static void main(String[] args) throws Exception {
Connection conn = null;
CallableStatement statement = null;
String sql = "{call stu_proc(?)}";
try {
conn = ConnUtils.getConnection();
statement = conn.prepareCall(sql);
statement.registerOutParameter(1, Types.VARCHAR);
statement.executeUpdate();
//输出:lisi
String sname = statement.getString(1);
System.out.println(sname);
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnUtils.free(null, statement, conn);
}
}
}
--带出入参存储过程
CREATE OR REPLACE PROCEDURE stu_proc(v_id IN NUMBER, v_name OUT VARCHAR2) ASBEGIN SELECT o.sname INTO v_name FROM student o where o.id = v_id;END;
使用JAVA调用带出入参存储过程
package com.ljq.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
public class ProceTest {
public static void main(String[] args) throws Exception {
Connection conn = null;
CallableStatement statement = null;
String sql = "{call stu_proc(?, ?)}";
try {
conn = ConnUtils.getConnection();
statement = conn.prepareCall(sql);
statement.setInt(1, 1);
statement.registerOutParameter(2, Types.VARCHAR);
statement.executeUpdate();
//输出:zhangsan
String sname = statement.getString(2);
System.out.println(sname);
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnUtils.free(null, statement, conn);
}
}
}
java调用数据库存储过程的接口是_JAVA调用数据库存储过程相关推荐
- java用来创建数据库连接的接口是_Java操作数据库--JDBC
简介 刚开始介绍了mysql基本语句,但是你会觉得好像不会知道怎么用,它的用途在什么地方,所以为了提高兴趣今天我们来介绍一下JDBC,以后会和MySQL一起更新. JDBC,到底jdbc是什么东西呢? ...
- 环信 java接口实例_java调用环信接口
现在需要实现app中消息禁言功能?需要调用环信的接口,已经有文档了,但是不知道怎么调用?不清楚怎么将环信的接口继承到java代码中?请大家多多指教. 添加禁言 将一个用户禁言.用户被禁言后,将无法在群 ...
- java有返回值的方法回调_java调用回调机制详解
调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...
- java调用支付接口实例_Java 调用支付宝接口
1.注册开发者中心应用 登录点击沙箱服务 https://open.alipay.com/platform/developerIndex.htm 2.创建沙箱应用获取APPID和支付宝网关地址(创 ...
- java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据
简介:本文详细讲述了通过Java调用百度天气接口的方法,取得返回的JSON格式的数据,并且通过第三方包解析JSON格式的数据. 通过百度天气API调用网络编程接口接收返回的JSON格式的数据. 关于百 ...
- java 红包接口开发_java调用微信现金红包接口的心得与体会总结
这几天看了下之前写的有关微信支付的博客,看的人还是挺多的,看了下留言不知道是因为博客写的不够细还是什么情况,大多都找我要源码,我觉得吧程序员还是需要有这么一个思考的过程,因此没直接给源码,俗话说&qu ...
- java调用ocx控件获取数据_Java调用ocx控件以及dll
通过Java调用OCX控件有几种方法,JNI.JACOB.Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin 尝试了一下,效果不错,但相对来说, ...
- java查询到更新之前的数据_Java对数据库的查询和更新操作详解
这篇文章主要介绍了使用Java对数据库进行基本的查询和更新操作,是Java入门学习中的基础知识,需要的朋友可以参考下 数据库查询 利用Connection对象的createStatement方法建立S ...
- java调用打印机打印需要进行什么操作_Java调用打印机程序有什么特点?
import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.awt.geom.*; import j ...
最新文章
- 【Android】Android中判断后台服务是否正在运行
- 清华大学计算机系人机交互,喻 纯 - 清华大学 - 《自然人机交互中的智能输入》(47页)-原创力文档...
- binlog以及Canel
- url oracle default schema,oracle @Table中使用schema时insert报错
- 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?
- Arduino 实现八段数码管显示练习
- jetty java 实例_java 在Jetty9中使用HttpSessionListener和Filter实例详解
- [转载]赵匡胤做事有底线
- vue日历插件vue-calendar
- three.js加载Obj三维模型
- 冷门短视频带货玩法,零门槛赚钱项目
- PHP房贷计算器代码,等额本息,等额本金
- 全角字符空格(可复制使用)
- 计算机桌面调音量的图标不见了,声音图标不见了,音量图标不见了怎么办?
- Java语言 随机点名程序
- 神圣的QA——写给应届毕业生
- 基于spss的多元线性回归(逐步回归法 stepwise regression)
- 拼团商城高保真小程序Axure原型模板
- 咸鱼笔记—Socket 通信
- 做北京linux培训哪家好?