Login :: Exception中的异常无法创建与数据库服务器的连接

时间:2014-04-29 13:52:48

标签: java android sql jdbc amazon-web-services

我正在处理连接到AWS上的数据库的Android应用程序(API级别19),并且我一直收到以下错误:

    04-29 09:24:12.095: I/System.out(1711): Exception in Login::Could not create connection to database server.
    04-29 09:24:12.095: W/System.err(1711): com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

我有一个名为DataBaseConnection的类来处理连接:

public class DataBaseConnection {

Connection connect = null;

public Connection getDataBaseConnection(){
    if(connect == null){
        try {
            Class.forName("com.mysql.jdbc.Driver");// loading MySQL driver
            connect = DriverManager.getConnection("jdbc:mysql://cmpe277.c38qsf0avgvg.us-west-1.rds.amazonaws.com:3306/CMPE277?user=root&password=password");
            //Set up connection with DB, username, password
        } catch (Exception e) {
            System.out.println("Exception in Login::"+e.getMessage());
            e.printStackTrace();
        }
    }
    return connect;
}
}

连接数据库并插入值的onClick方法如下所示:

//onClick Method for Sign Up
public void signUp(View view){

    DataBaseConnection dbConn = new DataBaseConnection();
    Connection conn = dbConn.getDataBaseConnection();

    EditText usernameEntry = (EditText) findViewById(R.id.username);
    username = usernameEntry.getText().toString();

    EditText password1Entry = (EditText) findViewById(R.id.password1);
    password1 = password1Entry.getText().toString();

    EditText password2Entry = (EditText) findViewById(R.id.password2);
    password2 = password2Entry.getText().toString();

    //Check That the two Typed Passwords Match
    if(password1.equals(password2)){
        query = "INSERT INTO USER VALUES (username,password1)";
        try {
                if(conn != null){
                    stmt = conn.createStatement();
                    stmt.executeQuery(query);
                }
        } 
        catch (Exception e) {
                System.out.println("Error in execute query::"+e.getMessage());
                e.printStackTrace();
        }
    }
}

我在Java应用程序中使用了这个类(DataBaseConnection)没有问题,但是当我尝试在Android应用程序中实现它时,我遇到了错误。

1 个答案:

答案 0 :(得分:0)

找到解决方案。只需使用AsyncTask

在单独的线程中运行与数据库的连接
相关问题