在Android应用中直接连接MySQL数据库并不是一个推荐的做法,因为这会涉及到网络安全、性能和可维护性等多个方面的问题。以下是一些基础概念和相关信息:
为了避免上述问题,推荐的做法是通过一个后端服务器来间接访问数据库。以下是一个简单的示例:
const express = require('express');
const mysql = require('mysql');
const app = express();
const db = mysql.createConnection({
host: 'your_database_host',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
db.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL database!');
});
app.use(express.json());
app.get('/users', (req, res) => {
db.query('SELECT * FROM users', (err, results) => {
if (err) return res.status(500).send(err);
res.json(results);
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
public interface ApiService {
@GET("users")
Call<List<User>> getUsers();
}
// 在Activity或Fragment中调用
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://your_server_address:3000/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<List<User>> call = apiService.getUsers();
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
if (response.isSuccessful()) {
List<User> users = response.body();
// 处理用户数据
}
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
// 处理错误
}
});
通过这种方式,不仅可以提高应用的安全性和性能,还能使代码结构更加清晰,便于维护和扩展。
领取专属 10元无门槛券
手把手带您无忧上云