如何将我的本地计算机中的MySQL数据库连接到Android应用程序。 这有可能。?
我开发了一个完美的Android应用程序。现在我需要从我的本地计算机中访问MySQL数据库中的一些数据。我正在寻找解决方案,因为2周后。 请帮我解决
---------------------------
| Order_id | Toatl Amt |
|-------------------------|
| 1025566 | 99.50 |
|-------------------------|
| 1125426 | 50.00 |
|-------------------------|
| 1025555 | 150.00 |
---------------------------
这是我的数据库表&#34; Bill&#34;在我的本地PC。我需要从我的手机中安装的Android应用程序访问这个数据库。当我在我的移动应用程序中输入订单ID时,我需要获取特定Oreder_id的total_amt。但问题是此表位于本地计算机< / strong>即可。我无法从移动应用程序访问此数据库direclty。是否有任何解决方案
答案 0 :(得分:0)
您需要本地计算机上的网络服务器,例如Apache或NGINX,以及适当的配置,以便您的计算机在本地网络上得到识别。然后,您应该能够将主机(即本地计算机)编程到Android应用程序中进行测试,然后通过本地网络进行访问。给定MySQL和Web服务器配置设置,您应该能够指定一个端口,提供对本地mysql服务器的访问。
答案 1 :(得分:0)
你需要一台服务器。 Apache服务器很好。 最简单的方法(也有点脏)就是在服务器上登录,无论App是什么。 然后在Android Studio中,您可以使用Webview并加载您的服务器。 您需要知道加载通常需要时间。 如果您计划使用日常连接进行应用,最好查看 Todd的回答,但如果您只需要一些数据,那么您可以使用Webview。
以下是代码:
<强> MainActivity.java 强>
public class MainActivity extends AppCompatActivity {
WebView mWebView; //your webview
final String url ="http://www.yourwebpage.com"; // string with your webpage url
ProgressDialog mProgress; //progress dialog that appears if your connection is not good (its an extra)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
getSupportActionBar().hide();
mWebView = (WebView) findViewById(R.id.webView); //your webview
WebSettings ajustes = mWebView.getSettings(); //your websettings (i am spanish so i called it "ajustes")
ajustes.setJavaScriptEnabled(true); //enable javascript in your webview
ajustes.setBuiltInZoomControls(true);
ajustes.setSupportZoom(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.setWebViewClient(new MyWebClient());
mWebView.loadUrl(url); // here you call your url string that you made before
mProgress = ProgressDialog.show(this, "Loading...", "Wait please...."); // progress dialog text
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) { // in this fuction you deal with connection error so you show a toast that tells you that tere is not connection
Toast.makeText(main_activity.this, "THERE IS NOT CONNECTION.TRY AGAIN LATER", Toast.LENGTH_LONG).show();
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) { //when your page finishes loading, your progressdialog will disappear
if (mProgress.isShowing()) {
mProgress.dismiss();
}
}
});
// set url for webview to load
mWebView.loadUrl(url);
}
private class MyWebClient extends WebViewClient {
//AlertDialog.Builder alert = new AlertDialog.Builder(web.this);
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
<强> activity_main.xml中强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/webView"
android:layout_gravity="center_horizontal" />
</LinearLayout>
这就是所有的代码。 如果你需要更多请求。 ADIOS !!!
答案 2 :(得分:0)
您需要在计算机上设置本地服务器,我目前正在使用Xampp来访问与我的Sql DataBase联系的我的Web服务