簡體   English   中英

無法通過Java類與數據庫建立連接

[英]can't get connection to database through java class

我試圖通過文件屬性與mysql數據庫建立連接,然后從servlet運行信息。 我的Connection類如下所示:

public class pageDao {

private Connection connection;
private Statement statement;

private pageDao() {
Properties prop = new Properties();

    try {
        //Class.forName("oracle.jdbc.driver.OracleDriver");
        //Class.forName("org.gjt.mm.mysql.Driver");
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException cnfe) {
        System.out.println("Error loading driver: " +cnfe);
    }

    try {
        try {
             //load a properties file
            prop.load(new FileInputStream("config.properties"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        String db = prop.getProperty("database");
        String dbuser = prop.getProperty("dbuser");
        String dbpassword = prop.getProperty("dbpassword");
        connection = DriverManager.getConnection(db,dbuser,dbpassword);

    } catch (SQLException e) {
        e.printStackTrace();
    }

}
private static pageDao thisDao; 

public static pageDao gedDao()
{
    if(thisDao == null)
        thisDao = new pageDao();
    return thisDao;
}

public PageData getPage(String id)
{
    PageData data = new PageData();

    try {
        statement = connection.createStatement();
        ResultSet rs = statement.executeQuery("select * from pages where id='"+id+"'");
        if(rs.next())
        {
            data.setId(rs.getString("id"));
            data.setParentid(rs.getString("parentid"));
            data.setTitle(rs.getString("title"));
            data.setTitle4menu(rs.getString("title4menu"));
            data.setKeywords(rs.getString("keywords"));
            data.setDescription(rs.getString("description"));
            data.setMaintext(rs.getString("maintext"));
        }
        else 
            return null;
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    return data;
}

當我運行它時,它並沒有顯示未建立連接的錯誤,但是當它到達

public PageData getPage(String id)  {
        PageData data = new PageData();

        try {
            statement = connection.createStatement();

它拋出java.lang.NullPointerException 有人可以幫我嗎?

代碼沒有問題。 檢查您的傳遞參數...

檢查樣品

private Connection getConnection() {
    try {
        String dbUrl = "jdbc:mysql://localhost:3306/projectmining";
        Class.forName("com.mysql.jdbc.Driver");
        return DriverManager.getConnection(dbUrl, "root", "admin");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM