在Android应用中调用MySQL数据库通常涉及以下几个基础概念:
以下是一个简单的示例,展示如何在Android应用中通过服务器端API间接访问MySQL数据库。
const express = require('express');
const mysql = require('mysql');
const app = express();
const port = 3000;
// 创建MySQL连接
const db = mysql.createConnection({
host: 'your_mysql_host',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
db.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL database!');
});
app.use(express.json());
// 定义一个简单的GET API来获取数据
app.get('/api/data', (req, res) => {
db.query('SELECT * FROM your_table', (err, result) => {
if (err) throw err;
res.json(result);
});
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
new FetchDataTask().execute("http://your_server_url/api/data");
}
private class FetchDataTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
URL url = new URL(urls[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
reader.close();
return result.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(String result) {
if (result != null) {
try {
JSONArray jsonArray = new JSONArray(result);
StringBuilder data = new StringBuilder();
for (int i = 0; i < jsonArray.length(); i++) {
data.append(jsonArray.getJSONObject(i).toString()).append("\n");
}
textView.setText(data.toString());
} catch (JSONException e) {
e.printStackTrace();
}
} else {
textView.setText("Failed to fetch data.");
}
}
}
}
通过以上方法,可以在Android应用中高效且安全地调用MySQL数据库。
领取专属 10元无门槛券
手把手带您无忧上云