Я работаю в проекте java с использованием eclipse, eclipseLink, API Java Persistence (JPA) и двух баз данных (MYSQL и SQLServer) с той же структурой (те же таблицы). Иногда мне нужно проверить базу данных, которую я использую, для применения условных операторов, таких как «if» или другие. Вопрос: Как я могу проверить, подключен ли я к базе данных MySQL или SQLServer и использую эту информацию в параметре?Проверка подключенной базы данных - Java persistence API
ответ
Я решил проблему чтения по тегу свойство и Атрибутимя = «eclipselink.target-базы данных» в конфигурационном файле persistence.xml. Я использовал этот импорт:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
И это функция, которую я использовал для чтения свойства:
public String DatabaseIdentifier()
{
String dbIdentifier=null ;
try {
//Creates a virtual file where is allowed for default the persistence.xml configurarion file
File path= new File("src\\META-INF");
//Using the xml libraries prepare the document to be read.
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new File(path+"\\persistence.xml"));
doc.getDocumentElement().normalize();
//Gets the list of properties contained in the persistence.xml file
NodeList listProperties= doc.getElementsByTagName("property");
//We searching in the list of properties the attribute with the name
//eclipselink.target-database and there we get the database that
//is in use.
for (int i = 0; i < listProperties.getLength(); i ++) {
Node team = listProperties.item(i);
if (team.getNodeType() == Node.ELEMENT_NODE)
{
Element element = (Element) team;
if (element.getAttribute("name").contains("eclipselink.target-database"))
{
dbIdentifier=element.getAttribute("value").toString();
System.out.println(element.getAttribute("value"));
}
}
}
} catch (Exception e)
{e.printStackTrace();}
return dbIdentifier;
}
В другом классе вы должны присвоить строку возвращения этого метода. И это ответ, теперь вы можете использовать эту информацию в условном выражении типа «если».
создать булевское значение connectedToDatabase и инициализировать его значением false. создайте блок try и catch, который сделает соединение. внутри try инициализировать connectedToDatabase для true. Если исключение поймано при попытке подключить логическое значение, оно останется ложным.
private boolean connectedToDatabase = false;
try
{
connection = DriverManager.getConnection(urlOfDatabase);
connectedToDatabase = true;
}catch(SQLException sqlException){
sqlException.printStackTrace();}
, то вы можете сделать оператор if, который будет генерировать исключение, если connectedToDatabase является ложным. просто убедитесь, что метод выбрасывает IllegalStateException.
if(!connectedToDatabase)
throw new IllegalStateException("Not Connected To Database");
Это не сработает, если сервер опустится, потому что он будет определять только успешное соединение.
- 1. Проверка нагрузки базы данных, подключенной к сетевому устройству хранения данных
- 2. Java Persistence API
- 3. Java Persistence API в сервлетах
- 4. AJAX/Java persistence
- 5. Infinispan persistence без какой-либо базы данных?
- 6. Java Persistence API Ошибка метода фабрики
- 7. Hibernate и Java persistence API - java.lang.NoSuchFieldError: NONE
- 8. Java Persistence API - Hibernate - невозможно построить EntityManagerFactory
- 9. Java persistence api не удаляет/удаляет запись базы данных оракула 11g XE
- 10. Почему сервер удалил содержимое базы данных, созданное с помощью API Java Persistence, и как его предотвратить?
- 11. Ищете проект-образец maven для java persistence api с sqlite3
- 12. Проверка интеграции Java с Arquillian, очистка базы данных
- 13. Какие знания необходимы для создания базы данных, подключенной к Интернету?
- 14. Java: проверка и инициализация базы данных
- 15. Java persistence unit in mysql
- 16. Требуемый Java API для создания диаграммы базы данных базы данных
- 17. JPA Java Persistence API Query возвращает нулевые результаты
- 18. Проверка сервера базы данных/клиента
- 19. Проверка данных Web Api 2 перед сохранением базы данных
- 20. Как определить тип подключенной базы данных в VB6?
- 21. Проверка базы данных Codeigniter
- 22. Проверка базы данных PHPUnit
- 23. Проверка базы данных PHP
- 24. Проверка наличия базы данных?
- 25. Проверка базы данных
- 26. базы данных MySQL Проверка
- 27. Проверка базы данных SQL
- 28. Проверка ConnectionState базы данных
- 29. Java Persistence Composite ID
- 30. Java persistence Вопрос
Это не ответ, потому что вы отправили код, который используется для традиционного подключения к базе данных в JAVA. Это не работает для проекта, использующего JPA и файл persistence.xml. – dpetersen