Ist es möglich, eine Java-JNI zu erstellen, die jdbc aufruft?

Ich bin neu in JNI und sehr verwirrt, wenn ich JNI verwenden kann, um das zu erreichen, was ich tun muss. Ich möchte eine Java-API erstellen, die jdbc zum Aktualisieren der Datenbank verwendet, aber diese spezielle API wird vom C ++ - Programm aufgerufen.

Ich denke also, ich sollte wahrscheinlich jni-Code schreiben, der über jdbc auf die Datenbank zugreift (ist das überhaupt möglich?), C ++ - Code erstellen und dll generieren, damit andere C ++ - Programme die dll einfach aufrufen können, um die Datenbank zu aktualisieren. Ist das alles möglich? Wenn ja, wie rufe ich wirklich jdbc in jni auf? Wenn diese DLL endlich fertig ist, kann Fortran sie auch aufrufen?

Mein anderer Gedanke ist vielleicht, ich sollte ein reguläres Java-Programm erstellen, um die Datenbank zu aktualisieren, und dann say ikvm verwenden, um die Java-Klasse in C ++ dll zu packen.

Die Sache ist, ich muss Access-Datenbank mit Java verwenden. Unsere C ++ - Programme greifen überhaupt nicht auf die Datenbank zu, und es ist besser, wenn auf diese Java-API über einen Systemaufruf zugegriffen werden kann.

Oder gibt es eine bessere Möglichkeit?

Ich hoffe, ich habe es gut erklärt. Ich bin nicht alle mit dem vertraut, was mir hier zugewiesen wird, und kann nicht viele relevante Referenzen finden.

Ich danke dir sehr!!

AKTUALISIERT: Das Problem ist, dass nicht auf allen Computern der C ++ - Postgresql-Treiber installiert ist, sondern der Java-Postgresql-Treiber. Wir möchten nicht jeden zwingen, den C ++ - Datenbank-Treiber zu installieren, und es werden keine wesentlichen Änderungen an diesen C ++ - Programmen vorgenommen. Es ist also sinnvoll, etwas in Java aufzurufen, um auf die Datenbank zuzugreifen. Der Java-Systemdienst (bevorzugt wie dll?) / API wird grundsätzlich aufgerufen, um die Start- und Endzeit eines C ++ - Programms aufzuzeichnen. C ++ - Programm wird einFunktionsaufruf (mit Übergabeparameter und Rückgabewert) zu diesem Systemdienst / Java-API, um die Start- / Endzeit aufzuzeichnen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage