Использование JDBC в Android для подключения удаленного MySQL - PullRequest
1 голос
/ 02 апреля 2012

Мой исходный код, как показано ниже:

private static final String url     = "jdbc:mysql://localhost/db_name";
private static final String user    = "xxxx";
private static final String pswd    = "xxxx";
private static final String sql     = "SELECT * FROM table_name";

/** Called when the activity is first created. */
@Override    
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    LinearLayout linLayMain     = new LinearLayout (this);
    TextView txtViewMainTitle   = new TextView (this);
    TextView txtViewAdminName   = new TextView (this);
    TextView txtViewAdminPswd   = new TextView (this);

    txtViewMainTitle.setText ("Main Title : NONE");
    txtViewAdminName.setText ("Admin Name : NONE");
    txtViewAdminPswd.setText ("Admin Password : NONE");

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

        Connection con = (Connection) DriverManager.getConnection (url, user, pswd);

        txtViewMainTitle.setText ("Main Title : JDBC Connection Sccess");

        Statement st = con.createStatement ();

        ResultSet rs = st.executeQuery (sql);

        while (rs.next ())
        {
            txtViewAdminName.setText ("Admin Name : " + rs.getInt (1));
            txtViewAdminPswd.setText ("Admin Pswd :" + rs.getString (2));
        }

    }
    catch (Exception e)
    {
        Log.i ("Test GoSport", "Jdbc Error : " + e.getMessage());

        e.printStackTrace ();
    }

    linLayMain.addView (txtViewMainTitle);
    linLayMain.addView (txtViewAdminName);
    linLayMain.addView (txtViewAdminPswd);

    txtViewMainTitle.setLayoutParams (new LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    txtViewAdminName.setLayoutParams (new LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    txtViewAdminPswd.setLayoutParams (new LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    setContentView (linLayMain);
}

Но это никогда не было успешным до сих пор. Когда я видел Log.i в DDMS, он всегда показывает «Ошибка соединения JDBC».

Моя среда, как показано ниже:

Mac OS X 10.7.2, Eclipse Java EE Indigo, MySQL-соединение-ява-5.1.18-bin.jar, эмулятор 4.0.3, API 15

1 Ответ

1 голос
/ 02 апреля 2012

Это не совсем ответ, но я помню, когда я впервые начал программировать на Android, мне сказали не устанавливать прямое соединение с удаленными базами данных, а всегда использовать интерфейс (например, JSP, PHP, .NET и т. Д.)...).Я не уверен в точной причине этого (вероятно, в безопасности), но просто подумал, что добавлю свои 2 цента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...