2012-04-02 48 views
1

我的源代碼:在Android中使用JDBC連接遠程MySQL如下

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

但是,它現在之前從未成功。當我在DDMS中看到Log.i時,它總是顯示「JDBC連接錯誤」。

我的環境如下:

的Mac OS X 10.7.2, 的Eclipse的Java EE靛藍, mysql的連接的Java-5.1.18-bin.jar, 模擬器4.0.3,API 15

+0

我會引用我自己的回答。 http://stackoverflow.com/questions/9858099/using-jdbc-in-android – 2012-04-02 02:28:05

回答

1

這不是一個真正的答案,但我記得當我第一次開始在Android中編程時,我被告知不要直接連接到遠程數據庫,而是總是經歷一個接口(即JSP,PHP,.NET等)。 ..)。我不確定這個(可能是安全性)的確切原因,但只是認爲我會投入我的2美分