Inicio rápido de Oracle (base de datos de enlaces Java JDBC)

Uno, pasos de desarrollo de JDBC

Cree una función en la base de datos de Oracle

Consultar el salario anual del empleado especificado: usar un procedimiento almacenado para lograr (pasar el parámetro, el segundo parámetro almacena el valor en el parámetro)
parámetro: es el número de empleado
Salida: salario anual

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;

2. Utilice JDBC para conectarse a Oracle en Eclipse y consultar contenido mediante funciones personalizadas

1. Crea un proyecto de proyecto

Inserte la descripción de la imagen aquí

2. Cree un archivo libs e introduzca el jar correspondiente en él.

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Crea paquetes y clases

Inserte la descripción de la imagen aquí

4. Conéctese a la base de datos de Oracle a través de JDBC y

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();
	}
}

Inserte la descripción de la imagen aquí

Tres, función de almacenamiento de llamadas 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();
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_44757034/article/details/108651144
Recomendado
Clasificación