У меня уже настроена база данных с некоторой информацией внутри, и я добавил библиотеку mysql-connector-java-5.1.35-bin в папку libs. Разрешение на доступ к Интернету и сети также добавляется в манифест. Я запускаю Android Studio в Windows 7. После его запуска синтаксическая ошибка отсутствует, но в моем эмуляторе я получаю следующее сообщение:
Ошибка теста: java.sql.SQLException: Доступ запрещен для пользователя 'root'@'192.168.56.101' (с использованием пароля: НЕТ)
Какая часть моей работы неправильная?! Я прикрепил свой код ниже.
Код: Выделить всё
public class MainActivity extends Activity {
//private static final String url = "jdbc:mysql://:
/";
public static final String LISTEN_ACTIVITY = "listenActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testDB();
}
public void testDB() {
TextView tv = (TextView)this.findViewById(R.id.txtv);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Log.i("Android", " MySQL Connection ok");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/k_sql1", "root", "");
// System.out.println("Database connection success");
Log.d("Android2","Line 2");
String result = ("");
Log.d("Android3", " Line 3");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from kpeople");
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
}
tv.setText(result);
} catch (Exception e) {
e.printStackTrace();
tv.setText("Test Error:"+e.toString());
Log.w("Android-system","system get connection");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/300 ... -with-jdbc
Мобильная версия