나는 클래스 로더를 사용하여 데이터베이스 연결을 시도했지만 항상 null 값을 표시했지만 FileInputStream 클래스를 사용하면 연결이 설정되어 친절하게 내가 한 실수를 안내합니다.
package com.soft.dbconnection;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Connector {
private static Connection con;
// static FileInputStream input;
static InputStream input = null;
public static Connection getConnection() {
if (con != null) {
return con;
} else {
try {
Properties p = new Properties();
// input = new FileInputStream("F:/workspace/Programs/com.test.soft/src/db.properties");
input = Connector.class.getClassLoader().getResourceAsStream(
"/com.test.soft/src/db.properties");
p.load(input);
String Driver = p.getProperty("driver");
String URL = p.getProperty("url");
String Uname = p.getProperty("uname");
String Password = p.getProperty("password");
Class.forName(Driver);
con = DriverManager.getConnection(URL, Uname, Password);
return con;
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException n) {
System.out.println(n);
} catch (IOException e) {
e.printStackTrace();
}
}
return con;
}
public static void main(String[] args) {
System.out.println(Connector.getConnection());
}
}
나는 당신이 프로젝트를 만든 경로와 프로젝트가 구축되면 무엇을 사용할 수 있는지를 혼란스럽게 생각합니다.
"/db.properties"또는 "db.properties"가 작동 할 것이라고 생각합니다.
"src"가 빌드 된 후에는 존재하지 않으므로 프로그램에서 "src"를 참조해서는 안됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다