2010-09-09 6 views
1

Quelqu'un a une idée comment puis-je écrire XMl fichier que je vais avoir une connexion JDBC (nom d'utilisateur, passwd, pilote, connexion) et puis lire ce xml pour se connecter à DB?java lire la connexion JDBC à partir du fichier XML

+2

Je ne comprends pas ce que vous demandez. Est-ce: a). Comment structurer le XML b). comment lire le XML en Java c) comment utiliser ce que vous avez analysé pour établir une connexion JDBC? Vous devriez vous concentrer sur l'un de ces problèmes dans cette question. – djna

Répondre

7

Voilà comment vous pouvez composer le 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> 

En supposant qu'il appelle config.xml et été placé à la racine du classpath, voici un exemple comment vous pouvez le charger avec l'aide de JAXP et 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); 
// ... 

Ce n'est que du verbeux plutôt que des fichiers de propriétés. Voici un exemple d'un tel fichier de propriétés:

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

En supposant qu'il porte le nom config.properties et été placé à la racine du classpath (ou son chemin racine est été ajoutée à la classpath), voici comment vous pouvez le charger du chemin de classe:

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"); 
// ... 
+0

uu thx pour un si bon howto – user437630

1

J'utilise souvent le Spring Framework pour externaliser la configuration d'un pool de connexions et la configuration de l'URL jdbc.

1

Jetez un coup d'œil à commons-configuration. Vous pouvez lire plusieurs formats de configuration avec. Cela dit, pour les propriétés de connexion à la base de données, le fichier simple valeur-clé .properties est meilleur, je pense.

1

Vous pouvez définir votre propre schéma XML, le lier à un bean Java et l'analyser via JAXB. Ensuite, il vous suffit d'invoquer les getters de votre bean pour construire votre connexion.

Questions connexes