下面是2 个简单的 java 调用 Oracle 的例子.
1. 创建 maven 工程, 添加依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-rc-2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1.0</version>
</dependency>
</dependencies>
2. 编写测试类
@Test
public void javaCallOracle() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
String dbURL = "jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521/服务名";
Connection connection = DriverManager.getConnection(dbURL, "name", "password");
//得到预编译的 Statement
PreparedStatement statement = connection.prepareStatement("select * from ZYQ_PERSON where pid = ?");
statement.setObject(1, 5);
//执行查询操作
ResultSet rs = statement.executeQuery();
//输出结果
while (rs.next()){
System.out.println(rs.getString("pname"));
}
//释放资源
rs.close();
statement.close();
connection.close();
}
3. 调用存储函数
/**
* 调用存储函数
* @throws Exception
* {?= call <procedure-name> [{<arg1>,<arg2>}]} 带返回值,调用存储函数使用
* {call <procedure-name> [{<arg1>,<arg2>}]} 带返回值, 调用存储过程使用
*/
@Test
public void javaCallOracleFunction() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
String dbURL = "jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521/服务名";
Connection connection = DriverManager.getConnection(dbURL, "name", "password");
//得到预编译的 Statement,传入创建存储函数的名称
CallableStatement statement = connection.prepareCall("{?= call zyq_f(?)}");
//给参数赋值
statement.setObject(2, 22);
//设置返回值类型
statement.registerOutParameter(1, OracleType.VARCHAR2);
//执行操作
statement.execute();
//输出结果,第一个参数
System.out.println(statement.getObject(1));
statement.close();
connection.close();
}
网友评论