|
要在安卓上显示MySQL数据库的内容,你需要遵循以下步骤:
zbhj4szkkubd2li.png
(图片来源网络,侵删)
1、创建MySQL数据库
2、配置服务器以允许远程访问
3、在安卓应用中连接到MySQL数据库
4、从数据库中获取数据并在安卓界面上显示
下面是详细的步骤和代码示例:
1. 创建MySQL数据库
你需要在MySQL服务器上创建一个数据库,以下是创建数据库的SQL语句:
CREATE DATABASE mydb;
创建一个表并插入一些数据:
USE mydb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
age INT
);
INSERT INTO users (name, age) VALUES ('张三', 25);
INSERT INTO users (name, age) VALUES ('李四', 30);
2. 配置服务器以允许远程访问
为了确保你的Android设备可以连接到MySQL服务器,你需要在服务器上进行一些配置,编辑MySQL配置文件(例如/etc/mysql/mysql.conf.d/mysqld.cnf),并添加以下内容:
[mysqld]
bindaddress = 0.0.0.0
然后重启MySQL服务:
sudo service mysql restart
3. 在安卓应用中连接到MySQL数据库
为了在Android应用中连接到MySQL数据库,你需要使用一个支持JDBC的库,例如JDBCRDD,将JDBCRDD库添加到你的项目的build.gradle文件中:
dependencies {
implementation 'com.github.lzyzsd:JDBCRDD:1.0.1'
}
你可以使用以下代码连接到MySQL数据库:
import com.github.lzyzsd.jdbcrdd.JdbcRDD;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "jdbc:mysql://:3306/mydb?useSSL=false";
String user = "your_username";
String password = "your_password";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
Log.d("User", "ID: " + id + ", Name: " + name + ", Age: " + age);
}
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:请将、your_username和your_password替换为实际的MySQL服务器IP地址、用户名和密码。
4. 从数据库中获取数据并在安卓界面上显示
为了在安卓界面上显示数据,你可以使用ListView或RecyclerView,这里我们使用ListView作为示例:
1、在activity_main.xml布局文件中添加ListView:
2、在MainActivity中设置ListView的适配器:
import android.os.AsyncTask;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
// ...
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1);
listView.setAdapter(adapter);
// ...(连接数据库的代码)
}
private class GetDataFromDatabase extends AsyncTask> {
@Override
protected ArrayList doInBackground(Void... voids) {
ArrayList dataList = new ArrayList();
// ...(连接数据库的代码)
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
dataList.add("ID: " + id + ", Name: " + name + ", Age: " + age);
}
return dataList;
}
@Override
protected void onPostExecute(ArrayList dataList) {
super.onPostExecute(dataList);
adapter.clear();
adapter.addAll(dataList);
}
}
}
3、在需要获取数据的地方调用GetDataFromDatabase异步任务:
new GetDataFromDatabase().execute();
现在,当你运行Android应用时,你应该能在界面上看到从MySQL数据库中获取的数据。 |
|