试图了解MySQL / PHP / JSON / Restful / Android关系

时间:2016-09-15 01:45:15

标签: php android mysql json retrofit

我正在制作一个拥有后端数据库(MySQL)的Android应用程序。

从我的研究中,似乎连接到MySQL数据库的方法之一是使用PHP向数据库发出HTTP请求,然后数据库将以JSON对象的形式返回数据,该数据被解码。

PHP is used to make a GET/POST to the database (often using a service like Retrofit) 
The database fetches or posts the appropriate data and must alert the client/return data
The database sends back information that is JSON form
The client decodes the returned JSON 

这是正确的逻辑吗? 为什么PHP需要提出请求?这是从Android应用程序与MySQL数据库交互的可接受方式吗?你有任何建议可以提供这个吗?

2 个答案:

答案 0 :(得分:2)

如果您在自己的设备中使用LAN MYSQL服务器,则可以使用MYSQL命令连接服务器

try
    {        
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         String url = "jdbc:mysql://"+serverip+":"+serverport+"/"+dbName;
         Connection conn = DriverManager.getConnection(url,username,password);
         String queryString = "SELECT * FROM materialdb"; 
         PreparedStatement statement = conn.prepareStatement(queryString);
         ResultSet rss = statement.executeQuery(queryString);

         results = new ArrayList<FindDetails>();

         rss.beforeFirst();
             while(rss.next())
                {         
                 FindDetails item_details = new FindDetails();
                item_details.setMaterial_Code_No(rss.getString("Material_Code_No"));
                results.add(item_details);          
                }                          
         rss.close();
         statement.close();
    }
    catch(Exception e)
    {
        Toast.makeText(this, "Fail to get main list", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }
}

如果服务器在Web上,更好的连接服务器的方法是PHP

答案 1 :(得分:0)

这种方法看起来像是用于Web服务器,而不是客户端(更不用说是Android客户端)。通常,服务器具有数据库,客户端是消费者&#34;那些数据。但是,客户端通常还有用于存储该数据的数据库。

PHP是一种服务器端技术,您可以使用URL和HTTP来发送和检索数据。然后,可以使用PHP连接到数据库,为客户端提供丰富的内容。

在Android中,您的设备(可能)不会有网址或网站。它可以有一个数据库,您可以使用HTTP库(如Retrofit - http://square.github.io/retrofit/)从网站(可能使用HTTP)获取数据。但这是被动 - 您的客户端将不得不请求数据,服务器不能&#34;推送&#34;数据。

对于&#34;推&#34;数据,您可以使用Firebase(谷歌云消息传递),它使用谷歌框架和API与设备(合理)持续连接到&#34;推送&#34;通知给它。如果您遵循他们的规则,您将发送一个小数据包,告诉您的客户端唤醒并开始向您喜欢的任何URL发出特定的HTTP请求。