Employee ||のデータを持つDBがすでにあると仮定します。保存された基準。 Android内からSQL DBにアクセスするのはおそらく可能ですが、db用のドライバが必要だと思います。私の選択は、DBにアクセスし、要求されたテーブルをJSONとして返すサーバーサイドスクリプトを呼び出すことです。 コンパイル「com.android.volleyバレーボール要求
と
アンドロイドコールサーバー非同期は、あなたは、Androidで コンパイル ':gson 2.8.0 com.google.code.gson' をGSONとバレーボールを使用していると想定します:ボレー:1.0.0'
import android.os.AsyncTask;
import android.util.Log;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.json.JSONObject;
/**
* Created by Henrik Ekelin on 08/14/2017.
*/
public class ServerRequest extends AsyncTask<Void, Void, String> {
private final static String TAG = ServerRequest.class.getSimpleName();
private final static String API_URL = "URL/fetchJSON.php";
private ServerMsgCallback callback;
public interface ServerMsgCallback {
void onRetrieved(Employee model);
void onError(String error);
}
public gay(ServerMsgCallback callback) {
this.callback = callback;
execute();
}
@Override
protected String doInBackground(Void... voids) {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(API_URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, "onResponse() " + response.toString());
Gson gson = new GsonBuilder().create();
// Retrieve the fetched JSON as Employee POJO
Employee employee = gson.fromJson(response.toString(), Employee .class)
callback.onRetrieved(gson.fromJson(response.toString(), Employee.class));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse() " + error.getMessage());
callback.onError(error.getMessage());
}
});
// Add the JSONObject to App Volley RequestQuew
App.getInstance().addToRequestQueue(jsonObjectRequest);
return null;
}
}
PHPスクリプトは
$db = null;
// Connect to database.
try {
$db = new pdo ('mysql:host=127.0.0.1:3306;dbname=DATABASE_NAME', 'USER', 'PASSWORD');
} catch (PDOException $ex) {
// Die with mercy
die (json_encode(array(
'outcome' => false,
'message' => 'Unable to connect'
)));
}
if ($db != null) {
// Retrieve the _POST msg from client as array
// {key -> value]
if (array_key_exists('msg', $_POST)) {
$data = json_decode($_POST ['msg'], true);
// Set the value from key 'id'
$id = $data ['id'];
// SQL statement retrieving the correct table with ID -> $id
// Prepare SQL statement
$s = $db->prepare('SELECT * FROM Employee WHERE ID = :id');
// Bind the parameter :name
$s->bindParam(':id', $id, PDO::PARAM_STR);
// Execute
$s->execute();
// Fetch the result
$r = $s->fetchAll();
// Loop through the result
foreach ($r as $res) {
// Find the correct Emplyee with id
if ($res ['ID'] == $id) {
// Retrieve the table params and store them as an array
$arr = array('ID', $res['ID'], 'NAME', $res['NAME'], 'SOMETHING', $res['SOMETHING'], 'BADABING', $res['BADABING']);
// Echo the result ie: return JSON
echo json_encode(array("Employee" => $arr));
}
}
}
}
$db = null;
header('Name: ' . "/location/file.php");
グッドラックSQLサーバーに接続します!
サーバー上では** Java **と表示されますが、まだPHPスクリプトが追加されています。 – androidnoobdev
fetchJSON.phpファイルをサーバーに置いてAndroidやvoilaから呼び出すだけで問題ありません!コンテンツは、呼び出しから返されます – gekn76
JavaサーバーはどのようにPHPファイルを実行することができますか?あなたは投票を得るためにいくつかの知識を持っているか、答えを出していますか? – androidnoobdev