2015-10-31 74 views
0

首次使用Android的外部數據庫,我試圖建立數據庫連接。爲了測試目的,我在數據庫中創建了一個基本表,並試圖連接並插入一些數據。這是我的代碼:MySQL數據庫連接不工作

public class DBInterface { 
//TODO: Fix the database connections 

    private Connection conn = null; 
    private Statement statement = null; 



    public void connectToDatabase(){ 
     Log.d("myTag", "This is my messagestart"); 
     try { 

      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      conn = DriverManager.getConnection("jdbc:mysql://mysql.**.***.***.***:3306", "DB_USER", "DB_PASSWORD"); 
      statement = conn.createStatement(); 
      statement.executeUpdate("INSERT INTO test (test) VALUES (15)"); 
      Log.d("myTag", "This is my message"); 


     } catch (SQLException ex) { 
      Log.d("myTag", "SQLException: " + ex.getMessage()); 
      Log.d("myTag","SQLState: " + ex.getSQLState()); 
      Log.d("myTag","VendorError: " + ex.getErrorCode()); 
     }catch(Exception e){e.printStackTrace();} 
    } 

,我把它在MainActivity的OnCreate:

  DBInterface db = new DBInterface(); 
     db.connectToDatabase(); 
     Log.d("myTag", "This is my message2"); 

沒有數據插入,但我還沒有得到任何錯誤,我把日誌消息試試,看看它是越來越來的唯一輸出到日誌:

10-31 16:13:41.481 9918-9918/com.jacksteel.comp4 d/myTag:這是我的messagestart

10-31 16:13:41.486 9918-9918/com.jacksteel.comp4 d/myTag: 這是我的消息2

+0

嘗試:** conn = DriverManager.getConnection(「jdbc:mysql://**.***.***.***:3306/DBNAME」,「DB_USER」,「DB_PASSWORD」); * * –

+0

@BerndBuffen沒有任何改變,相同的輸出 – Jack

回答

1

不是一個直接的答案,但你永遠不希望你的應用程序直接連接到您的數據庫。相反,您應該在您的服務器上編寫一些腳本來執行INSERT,SELECT,UPDATE,DELETE。

然後,您的應用程序將向這些腳本發送請求以執行查詢。

+0

這。做這個。不要讓人們可以直接訪問數據庫。充其量,它會限制你進行引擎蓋調整的能力。最糟糕的是,它會導致數據丟失和/或泄漏。 –

+0

這只是一個目前的學校項目,我還沒有知識或時間去做。 – Jack

+0

編寫一個php腳本只需要5分鐘那麼你的決定,你知道...你的mysql可以遠程訪問,你也可以使用executeUpdate,但它是一個INSERT – meda