2015-10-31 73 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