У меня есть настольное приложение (.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();
}