oracle---jdbctest--laobai
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet; import oracle.jdbc.OracleTypes;
import oracle.jdbc.oracore.OracleType; public class Test
{
static void 简单的查询()
{
String sql="select * from emp where deptno=?";
String[] paras={10+""};
ResultSet rs=JDBCUtil.doQuery(sql, paras);
try
{
while (rs.next())
{
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
System.out.println(empno + "--" + ename);
}
}
catch (Exception e)
{
System.out.println("查询异常!");
}
finally
{
JDBCUtil.close(rs);
}
}
static void 简单的修改()
{
String sql="update emp set empno=? where ename=?";
int result=JDBCUtil.doUpdate(sql, new String[]{"7369","老白"});
if(result!=1)
{
System.out.println("修改失败!");
}
else
System.out.println("修改成功!影响行数为:"+result);
}
static void 调用无参存储过程()
{
//获取链接
Connection con=JDBCUtil.getConnection();
//执行存储过程
String sql="{call system.update_emp_comm()}";
int result=0;
try
{
CallableStatement cmt = con.prepareCall(sql);
result = cmt.executeUpdate();
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("执行过程出现异常!");
return;
}
System.out.println("执行完毕!影响行数为:"+result);
}
static void 调用有入参出参存储过程()
{
//1 获取连接
Connection con = JDBCUtil.getConnection();
//2 执行存储过程
String sql = "{call update_emp_sal_by_deptno(?,?,?)}";
int result = 0;
try
{
CallableStatement cmt = con.prepareCall(sql);
cmt.setInt(1, 30);
cmt.setInt(2, 2000);
//将第3个参数注册出参
cmt.registerOutParameter(3, OracleType.STYLE_INT);
result = cmt.executeUpdate();
//获取第3个参数,也就是出参,执行完毕后的值
int rowcount = cmt.getInt(3);
System.out.println("影响了" + rowcount + "条!");
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("执行过程出现异常!");
return;
}
System.out.println("执行完毕,影响行数为:"+result);
}
static void 调用有入参的函数()
{
//1 获取连接
Connection con = JDBCUtil.getConnection();
//2 执行函数
String sql ="{? = call delete_emp_by_empname(?)}";
int result = 0;
try
{
CallableStatement cmt = con.prepareCall(sql);
//将函数的返回值,当成出参来注册
cmt.registerOutParameter(1, OracleType.STYLE_INT);
cmt.setString(2, "白");
result = cmt.executeUpdate();
//获取第3个参数,也就是出参,执行完毕后的值
int rowcount = cmt.getInt(1);
System.out.println("删除了" + rowcount + "条!");
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("执行过程出现异常!");
return;
}
System.out.println(result);
System.out.println("执行完毕!");
}
static void 调用有返回游标的函数()
{
//1 获取连接
Connection con = JDBCUtil.getConnection();
//2 执行函数
String sql ="{?=call get_max_min_sal_by_group()}";
int result = 0;
ResultSet rs = null;
try {
CallableStatement cmt = con.prepareCall(sql);
//将函数的返回值,当成出参来注册
cmt.registerOutParameter(1, OracleTypes.CURSOR);
result = cmt.executeUpdate();
//获取第1个参数,也就是返回值,即游标,即resultset
rs = (ResultSet) cmt.getObject(1);
while (rs.next()) {
int deptno = rs.getInt("部门号");
float max_sal = rs.getFloat("最高工资");
float min_sal = rs.getFloat("最低工资");
System.out.println(deptno + ",最高工资" + max_sal + ",最低工资"
+ min_sal);
}
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("执行过程出现异常!");
return;
}
finally
{
JDBCUtil.close(rs); //关闭游标
}
System.out.println(result);
System.out.println("执行完毕!");
}
public static void testProcedure()
{
String sql="{call queryEmpInfo(?,?,?,?)}";
Connection conn=null;
CallableStatement call=null;
try
{
conn = JDBCUtil.getConnection();
call = conn.prepareCall(sql);
//赋值
call.setInt(1, 7839);
//对于out参数,申明
call.registerOutParameter(2, OracleTypes.VARCHAR);
call.registerOutParameter(3, OracleTypes.NUMBER);
call.registerOutParameter(4, OracleTypes.VARCHAR);
//调用
call.execute();
//取出结果
String name = call.getNString(2);
double sal = call.getDouble(3);
String job = call.getString(4);
System.out.println(name);
System.out.println(sal);
System.out.println(job);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void testFunction()
{
String sql = "{?=call queryEmpIncome(?)}";
Connection conn = null;
CallableStatement call = null;
try
{conn = JDBCUtil.getConnection();
call = conn.prepareCall(sql);
call.registerOutParameter(1, OracleTypes.NUMBER);
call.setInt(2, 7839);
//执行
call.execute();
//取出年收入
double income = call.getDouble(1);
System.out.println(income);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
//简单的查询();
//简单的修改();
//调用无参存储过程();
//调用有入参出参存储过程();
//调用有入参的函数();
//调用有返回游标的函数();
//testProcedure();
testFunction();
} }
oracle---jdbctest--laobai的更多相关文章
- oracle:jdbcTest
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- JDBC链接oracle已经mysql的测试
1.链接oracle package cn.itcast.mybatis.dao; import java.sql.Connection;import java.sql.DriverManager;i ...
- 1、原生jdbc连接oracle数据库简单介绍
一.jbdc的常用API1.Connection:数据库的链接对象2.statement:数据库sql执行对象3.preparedStatment:sql的预编译处理对象,是statement子接口4 ...
- 基于oracle数据库存储过程的创建及调用
1.PLSQL编程 1.1概念和目的 PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循 ...
- oracle入门(二)
### 一,视图 ```1. 什么是视图 视图是一张虚表, 可以把视图看成表使用(增删改查),视图中没有数据,所有的数据都在基本表中(tables) 封装了一个复杂的DQL 操作视图 ...
- Java连接Oracle数据库的三种连接方式
背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...
- Java笔记4:JDBC纯驱动方式连接Oracle
JDBC纯驱动方式连接Oracle 1 下载Oracle提供的驱动程序包 下载地址: http://www.oracle.com/technetwork/database/enterprise-edi ...
- JAVA JDBC 连接 Oracle
使用 Junit 测试类编写 public class JdbcTest { private Connection con = null;// 创建一个数据库连接 private PreparedSt ...
- Java连接Oracle数据库常用方法
JDBC的六大步骤: 注册驱动 获取连接 获取执行sql语句对象 执行sql语句 处理结果集 关闭资源 oracle URL: jdbc:oracle:thin:@localhost:1521:SID ...
随机推荐
- native2ascii 使用说明
native2ascii.exe 是Java的一个文件转码工具,是将特殊各异的内容转为用指定的编码标准文体形式统一的表现出来,它通常位于JDK_home\bin目录下,安装好Java SE后,可在命令 ...
- 魔改——MFC SDI 支持 内嵌 EXCEL OLE
==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...
- JVM内存模型
原文地址:http://www.cnblogs.com/dingyingsi/p/3760447.html 1.程序计数器 程序计数器(Program Counter Register)是一块较小的内 ...
- 关于java中MessageFormat.format中单引号问题
我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ...
- .NET 缩略图服务器 ResizingServer
之前写过一篇文章 .NET 响应式自动缩略图服务器 之后对此Image Server又进行了基于ImageResizer的改写 基于.NET 图片服务器 支持缩略图格式 基于 ImageResizer ...
- 实验楼 linux 学习
实验楼 linux 学习 一.Linux 用户管理 1.查看用户 who am i // who mom likes whoami ====--------====== 输入的第一列表示打 ...
- <<一种基于δ函数的图象边缘检测算法>>一文算法的实现。
原始论文下载: 一种基于δ函数的图象边缘检测算法. 这篇论文读起来感觉不像现在的很多论文,废话一大堆,而是直入主题,反倒使人觉得文章的前后跳跃有点大,不过算法的原理已经讲的清晰了. 一.原理 ...
- TJ2016 CTF Write up
No zuo no die. Use markdown to write writeup in the future......
- 俄罗斯方块(Win32实现,Codeblocks+GCC编译)
缘起: 在玩Codeblocks自带的俄罗斯方块时觉得不错,然而有时间限制.所以想自己再写一个. 程序效果: 主要内容: 程序中有一个board数组,其中有要显示的部分,也有不显示的部分,不显示的部分 ...
- 由于log太多导致ubuntu硬盘空间满了,进入不了系统解决办法
具体现象是在图形界面输入用户名和密码之后,再次提示需要输入用户名和密码. 步骤一:按快捷键进入命令行界面.ctrl+alt+f1. 步骤二:清空文件 clear log cd /var/log sud ...