java从XML文件中读取JDBC连接

use*_*630 1 java xml jdbc

任何人都知道如何编写XMl文件,我将在其中连接JDBC(用户名,密码,驱动程序,连接),然后读取该xml以连接到db?

Bal*_*usC 8

以下是编写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>
Run Code Online (Sandbox Code Playgroud)

假设它被调用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);
// ...
Run Code Online (Sandbox Code Playgroud)

与属性文件相比,它只是非常冗长.以下是此类属性文件的示例:

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");
// ...
Run Code Online (Sandbox Code Playgroud)