2012-04-02 5 views
1

Meine Quelle, wie unten verbinden:in Android über JDBC Remote-MySQL-Code

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); 
} 

Aber es Erfolg, bevor jetzt nie. Als ich das Log.i in DDMS sah, zeigt es immer "JDBC Connection Error" an.

Meine Umwelt wie folgt:

Mac OS X 10.7.2, Eclipse-Java EE Indigo, mysql-Anschluss-java-5.1.18-bin.jar, Emulator 4.0.3 API 15

+0

Ich werde auf meine eigene SO-Antwort verweisen. http://stackoverflow.com/questions/9858099/using-jdbc-in-android –

Antwort

1

Dies ist nicht wirklich eine Antwort, aber ich erinnere mich, als ich anfing, in Android zu programmieren, wurde mir gesagt, keine direkte Verbindung zu entfernten Datenbanken zu machen, sondern immer über eine Schnittstelle (dh JSP, PHP, .NET, etc.) ..). Ich bin nicht sicher über den genauen Grund dafür (wahrscheinlich Sicherheit), aber ich dachte, ich würde meine 2 Cent werfen