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 ...
随机推荐
- 基于ambari2.4.0进行二次开发
目录 线上修改 源码结构 技术点 编译环境的搭建 安装samba 安装编译环境 整体编译 ambari-web的编译 WEB内容修改 wiki:https://cwiki.apache.org/co ...
- MYSQL介绍安装及一些问题解决
一.简介 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发.发布并支持的.有以下特点: MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQ ...
- SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小连续数组中的最大值
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- wordpress-4.4.1 数据库表结构解析
wordpress-4.4.1.zip 安装包 SQL结构 : wp_commentmeta :文章评论额外信息表. CREATE TABLE IF NOT EXISTS `wp_commentm ...
- Linux svn的搭建与使用
Linunx svn的搭建与使........纯手打的.. 一.安装前的准备 1.1 配置yum 库 1)加载光盘 2)进入/etc/yum.repo.d目录 3)复制"rhel-debug ...
- linux中文件(档案)和目录的RWX权限意义
1 权限对文件的意义 权限对文件的意义很好理解,下面我们看看权限对目录的意义. 2 权限对目录的意义 档案是存放实际资料的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录档名清单,档名与目录有强 ...
- 利用httpd对tomcat进行负载均衡配置
实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:jdk-8u60-linux-x64 ...
- 【读书笔记《Bootstrap 实战》】1.初识Bootstrap
作为Web前端开发框架,Bootstrap为大多数标准的UI设计常见提供了用户友好.扩浏览器的解决方案. 1.下载Bootstrap 打开官方网址 http://getbootstrap.com/ 进 ...
- java操作Redis
需要使用如下jar包 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> ...