java - 无法通过java类连接到数据库

标签 java mysql jdbc

我正在尝试通过文件属性与 mysql 数据库建立连接,然后从 servlet 运行信息。我的连接类如下所示:

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;
}

关于java - 无法通过java类连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765420/

相关文章:

java - 在没有证书的 SSL 握手中添加客户端身份验证

java - 根据 'number of pages' 标准拆分文本文件

mysql - 向 MySQL COUNT() 添加限制以每天最多只考虑 3 行?

php - 从 Fuel PHP 查询生成器中的列中减去一个值

java - ojdbc14.jar 和 ojdbc6.jar 中的 OracleResultSet 类

spring - Kotlin 协程与 Spring JPA 阻塞存储库

java - 单独线程中的实时消息处理方法体

java - 并发标记和清除中的 "abort preclean due to time"

MySQL计算同一列中多个值的存在

java - 寻找以下代码的优化