1

ファイルのプロパティを使用して mysql データベースとの接続を確立し、サーブレットから情報を実行しようとしています。私の 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ます。誰でもそれで私を助けることができますか?

4

1 に答える 1

0

コードに問題はありません。渡すパラメーターを確認してください...

サンプルをチェック

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;
}
于 2012-05-26T10:29:50.623 に答える