Подключение к базе данных Hibernate, JDB C через прокси-сервер - PullRequest
0 голосов
/ 02 марта 2020

У меня есть настольное приложение (.exe), которое использует базу данных в облаке, в конфигурационном файле hibernate я установил URL-адрес \ порт \ пользователь \ пароль сервера, на котором настраивается база данных. Я проверил это дома и работает нормально. Но на моей работе, где я хочу использовать это приложение, есть некоторые проблемы. В нашем офисе мы настроили прокси-сервер наших системных администраторов, поэтому все соединения проходят через него. И с этого момента - мое соединение с БД в приложении не работает, потому что приложение не имеет ничего общего с прокси-сервером, мне нужно реализовать это в моем коде.

У меня есть ip / port / user / pass для подключения к прокси, но я не понимаю, как настроить этот прокси в моей программе, я попытался найти об этом в inte rnet, но нет результат, который мог бы помочь.

a искал и основал эту статью по oracle https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html, но нет настроек для настройки пользователя и пароля для аутентификации прокси-сервера, поэтому он не делает помощь (хотя я пытался это сделать).

здесь от hibernate.cfg. xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.url">jdbc:postgresql://linkToServer</property>
        <property name="hibernate.connection.username">username</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
        <property name="hibernate.show_sql">true</property>

    </session-factory>
</hibernate-configuration>

Вот мой HibernateSessionFactoryUtil. java:

package database;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;


public class HibernateSessionFactoryUtil {
    private static SessionFactory sessionFactory;

    private HibernateSessionFactoryUtil(){}

    public static SessionFactory getSessionFactory(){
        if(sessionFactory == null) {
            try {

                Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

                configuration.addAnnotatedClass(User.class);
                configuration.addAnnotatedClass(Worker.class);
                configuration.addAnnotatedClass(Task.class);
                StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
                                .applySettings(configuration.getProperties());

                sessionFactory = configuration.buildSessionFactory(builder.build());

            } catch (Exception e){
                System.out.println("Exception:" + e);
            }
        }
        return sessionFactory;
    }
}

Небольшой пример использования БД в коде:

 public void save(User user) {
        Session session = HibernateSessionFactoryUtil.getSessionFactory().openSession();
        Transaction transaction1 = session.beginTransaction();
        session.save(user);
        transaction1.commit();
        session.close();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...