java читает соединение JDBC из файла XML - PullRequest
1 голос
/ 09 сентября 2010

Кто-нибудь знает, как я могу написать XMl-файл, в котором у меня будет JDBC-соединение (имя пользователя, passwd, драйвер, соединение), а затем прочитать этот XML для подключения к БД?

Ответы [ 4 ]

8 голосов
/ 09 сентября 2010

Вот как вы можете составить XML:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <jdbc>
        <url>jdbc:mysql://localhost:3306/javabase</url>
        <driver>com.mysql.jdbc.Driver</driver>
        <username>java</username>
        <password>d$7hF_r!9Y</password>
    </jdbc>
</config>

Предполагая, что он называется config.xml и помещен в корень пути к классам, вот пример, как вы можете загрузить его с помощью JAXP и Xpath :

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.xml");
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(input));
XPath xpath = XPathFactory.newInstance().newXPath();
String url = (String) xpath.compile("//config//jdbc//url").evaluate(document, XPathConstants.STRING);
String driver = (String) xpath.compile("//config//jdbc//driver").evaluate(document, XPathConstants.STRING);
String username = (String) xpath.compile("//config//jdbc//username").evaluate(document, XPathConstants.STRING);
String password = (String) xpath.compile("//config//jdbc//password").evaluate(document, XPathConstants.STRING);
// ...

Это довольно многословно, в отличие от файлов свойств. Вот пример такого файла свойств:

jdbc.url = jdbc:mysql://localhost:3306/javabase
jdbc.driver = com.mysql.jdbc.Driver
jdbc.username = java
jdbc.password = d$7hF_r!9Y

Предполагая, что он называется config.properties и помещен в корень пути к классам (или его корневой путь добавлен в путь к классам), вот как вы можете загрузить его из пути к классам:

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"));
String url = properties.getProperty("jdbc.url");
String driver = properties.getProperty("jdbc.driver");
String username = properties.getProperty("jdbc.username");
String password = properties.getProperty("jdbc.password");
// ...
1 голос
/ 09 сентября 2010

Взгляните на commons-configuration .С ним можно читать несколько форматов конфигурации.

Тем не менее, для свойств соединения с базой данных простой файл со значением ключа .properties лучше, я думаю.

1 голос
/ 09 сентября 2010

Вы можете определить свою собственную XML-схему, связать ее с Java-бином и проанализировать через JAXB. Затем вам просто нужно вызвать получатели вашего компонента для создания вашего соединения.

1 голос
/ 09 сентября 2010

Я часто использую Spring Framework для внешней настройки конфигурации пула соединений и настройки URL-адреса jdbc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...