Oracle快速入门(Java JDBC链接数据库)

一、JDBC的开发步骤

在Oracle数据库当中创建一个函数

查询指定员工的年薪–使用存储过程来实现(传入参数,第二个参数将值存储到参数当中)
参数:是员工编号
输出:年薪

create or replace procedure proc_gettotalsal(vempno in number,vtotalsal out number)
is
begin
	select sal*12 + nvl(comm,0) into vtotalsal from emp where empno = vempno;
end;

二、在Eclipse当中使用JDBC连接Oracle,通过自定义函数查询内容

1、创建一个项目工程

在这里插入图片描述

2、创建一个libs文件将对应的jar引入到其中

在这里插入图片描述
在这里插入图片描述

3、创建包和类

在这里插入图片描述

4、通过JDBC连接Oracle数据库以及

package com.itzheng.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import oracle.jdbc.driver.OracleTypes;
import oracle.jdbc.oracore.OracleType;

/*
1、导入驱动包
2、第二部注册驱动
3、获取连接
4、获取执行SQL的statement
5、封装参数
6、执行SQL
7、获取结果
8、释放资源
 */
public class TestProcedure {
    
    
	@Test
	public void test1() throws Exception {
    
    		
		//注册驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		//2、获取连接		
		//(1)设置对应的参数
		String url = "jdbc:oracle:thin:@192.168.75.100:1521:orcl";		
		String username = "scott";		
		String password = "tiger";
		//(2)获取连接
		Connection conn = DriverManager.getConnection(url, username, password);		
		//prepareCall在执行存储过程之前,必须注册所有OUT参数的类型,他们的值是在执行后通过此类提供的get方法获取的。
		//3、获取执行SQL的statement		
		//这几SQL语句的作用就是调用Oracle当中自定义的函数,一个人为输入参数,第二个为输出参数
		String sql = "{call proc_gettotalsal(?,?)}";		
		CallableStatement state = conn.prepareCall(sql);//通过链接获取对应的statement		
		//向SQL当中的?设置对应的值   ---设置输入参数
		state.setInt(1, 7788);//第一个索引	
		//注册输出参数将查询到的值放入到OracleTypes,并或 去对应的数字类型
		state.registerOutParameter(2, OracleTypes.NUMBER);//第二个位Oracle执行函数返回的结果
		//4、执行statement
		state.execute();		
		//5、获取执行结果		
		int tatalsal = state.getInt(2);
		//输出结果
		System.out.println("工资:"+tatalsal);
		//6、释放资源
		state.close();
		conn.close();
	}
}

在这里插入图片描述

三、JDBC调用存储函数

@Test
public void test2() throws Exception {
    
    
	// 注册驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	// 2、获取连接
	// (1)设置对应的参数
	String url = "jdbc:oracle:thin:@192.168.75.100:1521:orcl";
	String username = "scott";
	String password = "tiger";
	// (2)获取连接
	Connection conn = DriverManager.getConnection(url, username, password);
	// prepareCall在执行存储过程之前,必须注册所有OUT参数的类型,他们的值是在执行后通过此类提供的get方法获取的。
	// 3、获取执行SQL的statement
	String sql = "{?=call func_getsal(?)}";
	CallableStatement state = conn.prepareCall(sql);
	//4、封装参数
	//注册返回值类型参数
	state.registerOutParameter(1, OracleTypes.NUMBER);//将返回值存储到OracleTypes
	//设置第二个参数
	state.setInt(2, 7788);
	//5、执行SQL
	state.execute();
	//6、获取结果
	int int1 = state.getInt(1);//获取对应的值
	System.out.println("年薪"+int1);
	//7、释放资源
	state.close();
	conn.close();
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/108651144