我正在制作一个拥有后端数据库(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数据库交互的可接受方式吗?你有任何建议可以提供这个吗?
答案 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请求。