2012-04-02 54 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美分