gpt4 book ai didi

java - 使用 PLSQL 执行 jar 文件

转载 作者:行者123 更新时间:2023-12-02 01:52:38 25 4
gpt4 key购买 nike

我有一个独立的java程序,它从REST端点读取数据并将数据插入服务器中的表中。

   package com.test.main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.json.JSONObject;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.test.connectdb.ConDataBase;
import com.test.entity.User;

public class Main {

public static void main(String[] args) {

try {


URL url = new URL("https://jsonplaceholder.typicode.com/todos/");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");

conn.connect();
System.out.println("DONE2");

int responsecode = conn.getResponseCode();

String inline = "";
if(responsecode == 200){
Scanner sc = new Scanner(url.openStream());
while(sc.hasNext())
{
inline+=sc.nextLine();
}
System.out.println("JSON data in string format");
System.out.println(inline);
sc.close();

}else{
throw new RuntimeException("HttpResponseCode:" +responsecode);

}

//-----------------------------------------------------------------------
Connection con = new ConDataBase().buildConnection();

User[] userList = new Gson().fromJson(inline, User[].class);
System.out.println(userList.length);
for (User user : userList) {
//System.out.println(user.getCompleted());
String insert_date = "insert into XX_USER "
+ "(USER_ID)"
+ "VALUES"
+"('"+user.getCompleted()+"')";


try {

PreparedStatement ps_data = con.prepareStatement(insert_date);
ps_data.executeUpdate();
con.commit();
System.out.println("Successfully Inserted");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
}


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}

}

我需要使用 PLSQL 运行这个 jar 文件。这意味着我已将此 jar 文件传输到 Linux 服务器路径 (/home/rest)。服务器上安装了Oracle数据库。我需要使用 PLSQL 运行这个 jar。可能吗?

最佳答案

使用LOADJAVA utility将 jar 文件和所有其他 jar 依赖项加载到 Oracle 的内部类路径(这与操作系统的类路径不同)。

您可能还想将代码更改为不带参数的静态方法(而不是带有字符串数组参数的 main),因为这将使调用该方法变得更加简单。

// package and imports
public class Main {
public static void yourMethodName() {
// your code
}
}

然后你需要使用类似的东西:

CREATE PROCEDURE get_todos_from_rest_service AS
LANGUAGE JAVA NAME 'com.test.main.Main.yourMethodName()';

围绕 java 方法创建一个过程包装器,然后您可以在 PL/SQL 中调用该过程包装器。

可以在此处找到更详细的示例:Database Java Developer's Guide - Java Stored Procedures Application Example

关于java - 使用 PLSQL 执行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com