удаленное соединение базы данных Oracle с Java - PullRequest
2 голосов
/ 08 октября 2019

Я пытаюсь выяснить, как удаленно подключиться к базе данных oracle, чтобы получать из нее информацию / данные. Я не знаю, как это сделать. Я также хотел бы использовать источник данных для связи с оракулом БД. Я совершенно новичок в этом, и если его не так много, чтобы спросить, могу ли я получить пошаговые инструкции, как это сделать. Я использую сервер свободы.

Все, что я сделал, это прочитал в Интернете что-то, что отвечает на мой запрос, но я просто не могу найти то, что я ищу. Ниже то, что у меня есть, и я пытаюсь понять, как достичь своей цели из того, что у меня есть.

В этом сценарии я хочу использовать источник данных и удаленно подключаться к Oracle DB.

package com.dBconnect;

import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DatabaseUtility {

    private static DataSource dataSource;
    static Connection conn;

    public static void main(String ars[]) {
        try {
            conn = dataSource.getConnection();
            System.out.println("connection established");

        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

1 Ответ

2 голосов
/ 08 октября 2019

Ваш пример кода - это отдельная Java-программа, хотя вы также пометили вопрос с помощью websphere-liberty. Существуют различные способы получения источника данных из автономной Java-программы по сравнению с запуском на сервере приложений (последний).

Вот как это сделать в Liberty.

Редактирование сервераФайл конфигурации (server.xml) для включения одной из функций jdbc,

<featureManager>
  <feature>jdbc-4.2</feature>
  <feature>jndi-1.0</feature> <!-- for JNDI lookup of the data source -->
  <feature>servlet-4.0</feature> <!-- or other features that you want to use -->
</featureManager>

<dataSource id="myDataSource" jndiName="jdbc/myOracleDataSource">
    <jdbcDriver libraryRef="OracleLib"/>
    <properties.oracle URL="jdbc:oracle:thin:@//localhost:1521/SAMPLEDB" user="user1" password="password1"/>
</dataSource>

<library id="OracleLib">
    <file name="C:/Oracle/lib/ojdbc8.jar"/>
</library>

См. пример конфигурации на этой странице центра знаний для получения дополнительной информации о конфигурации источника данных.

Из веб-компонента или компонента ejb (здесь используется сервлет), используйте внедрение ресурсов следующим образом (для этого не требуется функция jndi-1.0),

@WebServlet("/*")
public class ExampleServlet extends javax.servlet.http.HttpServlet {
    @Resource(lookup = "jdbc/myOracleDataSource")
    private DataSource dataSource;

    public void init() throws ServletException {
        // Here is another way of accessing the data source - via JNDI lookup.
        // This requires the jndi-1.0 feature
        DataSource anotherDataSource = InitialContext.doLookup("jdbc/myOracleDataSource");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            conn = dataSource.getConnection();
            System.out.println("connection established");
            response.getWriter().println("connection established");
        } catch (Exception e) {
            e.printStackTrace();
            response.getWriter().println("failed to establish connection: " + e);
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
...