我目前的功能有问题:
public static Connection ConnectDB(){
try{
File fichier = new File("\\XFiles\\Conf\\init.xml");
System.out.println(fichier.getAbsoluteFile());
String nom = fichier.getName();
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(nom);
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(input));
XPath xpath = XPathFactory.newInstance().newXPath();
String url = (String) xpath.compile("//init//jdbc//url").evaluate(document, XPathConstants.STRING);
String driver = (String) xpath.compile("//init//jdbc//driver").evaluate(document, XPathConstants.STRING);
String username = (String) xpath.compile("//init//jdbc//username").evaluate(document, XPathConstants.STRING);
String password = (String) xpath.compile("//init//jdbc//password").evaluate(document, XPathConstants.STRING);
String passwordCryp = String.valueOf(password);
Cryptage cipherUtil = new Cryptage();
String mdpCrypte = cipherUtil.encrypt(passwordCryp);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //méthode qui retourne la classe de l'objet assoccié au string
if(conn==null){ //si la connexion est null
conn = DriverManager.getConnection(url+"integratedSecurity=true;",username,password); //récupérer les informations de la connexion (serveur, BDD...)
logger.debug("Connexion Réussite");
}
return conn; //retourne la connexion
}catch(Exception e){ //s'il y a une erreur
logger.error(e);
return null;
}
}
当我编译并运行它时,变量“输入”始终为空。我试图将xml文件放在File对象中,但仍然无法正常工作。
最佳答案
String nom = fichier.getName();
将仅返回文件名,即init.xml
。如果要在指定的路径中访问文件,则应使用fichier.getPath()
甚至fichier.getAbsolutePath()