我正在处理连接到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应用程序中实现它时,我遇到了错误。
答案 0 :(得分:0)
找到解决方案。只需使用AsyncTask
在单独的线程中运行与数据库的连接