[英]java read JDBC connection from XML file
任何人都知道我该如何编写将具有JDBC连接(用户名,passwd,驱动程序,连接)的XMl文件,然后读取该XML以连接到db?
编写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");
// ...
我经常使用Spring Framework来外部化连接池的配置和jdbc URL的设置。
看一下commons-configuration 。 您可以使用它读取多种配置格式。
也就是说,对于数据库连接属性,我认为简单的键值.properties
文件更好。
您可以定义自己的XML模式,将其绑定到Java bean,然后通过JAXB进行解析。 然后,您只需调用bean的getter来建立连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.