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调用数据库存储过程相关推荐

  1. java用来创建数据库连接的接口是_Java操作数据库--JDBC

    简介 刚开始介绍了mysql基本语句,但是你会觉得好像不会知道怎么用,它的用途在什么地方,所以为了提高兴趣今天我们来介绍一下JDBC,以后会和MySQL一起更新. JDBC,到底jdbc是什么东西呢? ...

  2. 环信 java接口实例_java调用环信接口

    现在需要实现app中消息禁言功能?需要调用环信的接口,已经有文档了,但是不知道怎么调用?不清楚怎么将环信的接口继承到java代码中?请大家多多指教. 添加禁言 将一个用户禁言.用户被禁言后,将无法在群 ...

  3. java有返回值的方法回调_java调用回调机制详解

    调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...

  4. java调用支付接口实例_Java 调用支付宝接口

    1.注册开发者中心应用   登录点击沙箱服务 https://open.alipay.com/platform/developerIndex.htm 2.创建沙箱应用获取APPID和支付宝网关地址(创 ...

  5. java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据

    简介:本文详细讲述了通过Java调用百度天气接口的方法,取得返回的JSON格式的数据,并且通过第三方包解析JSON格式的数据. 通过百度天气API调用网络编程接口接收返回的JSON格式的数据. 关于百 ...

  6. java 红包接口开发_java调用微信现金红包接口的心得与体会总结

    这几天看了下之前写的有关微信支付的博客,看的人还是挺多的,看了下留言不知道是因为博客写的不够细还是什么情况,大多都找我要源码,我觉得吧程序员还是需要有这么一个思考的过程,因此没直接给源码,俗话说&qu ...

  7. java调用ocx控件获取数据_Java调用ocx控件以及dll

    通过Java调用OCX控件有几种方法,JNI.JACOB.Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin 尝试了一下,效果不错,但相对来说, ...

  8. java查询到更新之前的数据_Java对数据库的查询和更新操作详解

    这篇文章主要介绍了使用Java对数据库进行基本的查询和更新操作,是Java入门学习中的基础知识,需要的朋友可以参考下 数据库查询 利用Connection对象的createStatement方法建立S ...

  9. java调用打印机打印需要进行什么操作_Java调用打印机程序有什么特点?

    import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.awt.geom.*; import j ...

最新文章

  1. 【Android】Android中判断后台服务是否正在运行
  2. 清华大学计算机系人机交互,喻 纯 - 清华大学 - 《自然人机交互中的智能输入》(47页)-原创力文档...
  3. binlog以及Canel
  4. url oracle default schema,oracle @Table中使用schema时insert报错
  5. 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?
  6. Arduino 实现八段数码管显示练习
  7. jetty java 实例_java 在Jetty9中使用HttpSessionListener和Filter实例详解
  8. [转载]赵匡胤做事有底线
  9. vue日历插件vue-calendar
  10. three.js加载Obj三维模型
  11. 冷门短视频带货玩法,零门槛赚钱项目
  12. PHP房贷计算器代码,等额本息,等额本金
  13. 全角字符空格(可复制使用)
  14. 计算机桌面调音量的图标不见了,声音图标不见了,音量图标不见了怎么办?
  15. Java语言 随机点名程序
  16. 神圣的QA——写给应届毕业生
  17. 基于spss的多元线性回归(逐步回归法 stepwise regression)
  18. 拼团商城高保真小程序Axure原型模板
  19. 咸鱼笔记—Socket 通信
  20. 做北京linux培训哪家好?

热门文章

  1. mysql 与c_mysql基础:mysql与C结合实例
  2. 圆弧构型机器人轮直径校准
  3. Property 'filter' does not exist on type 'Observable' 报错解决方法
  4. PCL之ubuntu安装CloudCompare
  5. Eigen教程(9)之Reshape,Slicing介绍
  6. Halcon——使用标定板标定像素当量
  7. 阿里五年晋升三次,选择真的大于努力?
  8. 【笔记】jquery判断两个日期之间相差多少天
  9. log4cpp 用法
  10. F14-lnmp,wordpress,discuz