连接到数据库时出现空指针异常

时间:2014-07-08 23:40:45

标签: java mysql

所以我试图从java连接到我的数据库,我在Eclipse工作,我在网上看了一个教程,一切似乎都工作得很好!!但是当我想连接另一个时appache server上的数据库..程序开始运行..但几分钟没有任何反应..然后我得到Null Pointer Exception消息.. 并在行:st = con.createStatement(); 这是代码:

package database_console;    

import java.sql.*    

public class DBConnect {
private  Connection con;
private  Statement st;
private ResultSet rs;

public DBConnect(){

    try {
        Class.forName("com.mysql.jdbc.Driver");


            try {
                con = DriverManager.getConnection("jdbc:mysql://localhost:80/mysql", "root", "admin");
                st = con.createStatement();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

// to retrieve the results and print them out
public void getData(){

    String query = "select DB from db";
    try {
        rs = st.executeQuery(query);
        System.out.print("Records from Database");

        while (rs.next()){
            String DB = rs.getString("DB");
            //String name = rs.getString("name");
            //String password = rs.getString("password");
            //int id = rs.getInt("id");
            //System.out.print("ID: "+id+" Name: "+name+" password: "+password+"");
            System.out.print("DB: " + DB );
        }
        st.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我稍后从main()为的另一个类调用getData()函数:

package database_console;

import java.io.IOException;

public class Main {

public static void main(String[] args){
    DBConnect connect = new DBConnect();
    connect.getData();
}
你可以帮我弄清楚我的代码有什么问题吗? 感谢。

3 个答案:

答案 0 :(得分:1)

我注意到你正在尝试连接到端口80,即" jdbc:mysql:// localhost:80 / mysql"。对于mysql来说这是非常不寻常的。端口80是标准的http端口。 mysql的标准端口是3306.很确定这是你的问题。

答案 1 :(得分:0)

创建Connection对象时,控制台中必须有异常,导致Statement对象未初始化,并且当您尝试从Statement对象创建ResultSet对象时导致NullPointException

原因应该是您使用80作为端口,而MySQL的默认端口是3306。在这个原因中,您无法创建Connection对象。

答案 2 :(得分:0)

检查您的连接详情 - hostUrl,username&密码。