1、环境准备

MySQL数据库:确保在局域网内的服务器上已经安装了MySQL数据库,并且创建了相应的数据库和表。
Android设备:用于运行Android应用程序的设备,可以是实体设备或模拟器。
JDBC驱动程序:下载与MySQL版本兼容的JDBC驱动程序(例如mysql-connector-java-x.x.xx.jar),并将其添加到Android项目的libs目录中。
2、配置AndroidManifest.xml
添加网络权限,以便应用程序能够访问互联网:
<uses-permission android:name="android.permission.INTERNET"/>
3、连接代码实现
创建一个工具类ConnectionUtils,用于管理数据库连接:

public class ConnectionUtils {
private static final String URL = "jdbc:mysql://服务器IP地址:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false";
private static final String USERNAME = "用户名";
private static final String PASSWORD = "密码";
public static Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
}
在主线程中不能直接进行耗时操作,因此需要在子线程中执行数据库操作:
new Thread(new Runnable() {
@Override
public void run() {
try {
Connection connection = ConnectionUtils.getConnection();
// 在这里执行SQL查询或更新操作
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM 表名");
while (resultSet.next()) {
// 处理查询结果
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}).start();
4、注意事项
确保Android设备的IP地址与MySQL服务器在同一局域网内。
MySQL服务器需要允许外部连接,可以通过修改my.cnf文件来实现:
[mysqld]
bind-address = 0.0.0.0
如果使用MySQL 8.x版本,请确保使用了正确的驱动程序类名com.mysql.cj.jdbc.Driver。
为了提高安全性,建议使用PreparedStatement代替Statement来执行SQL语句,以防止SQL注入攻击。
相关问题与解答
问题1:如何在Android项目中添加JDBC驱动?

答:将下载的JDBC驱动(例如mysql-connector-java-x.x.xx.jar)***到Android项目的app/libs目录下,然后在项目的build.gradle文件中添加以下依赖:
dependencies {
implementation files('libs/mysql-connector-java-x.x.xx.jar')
}
这样,Gradle就会在构建项目时自动包含这个JAR文件。
问题2:为什么在Android中连接MySQL数据库时必须在子线程中进行?
答:在Android中,所有耗时的操作都应该在子线程中进行,以避免阻塞主线程(也称为UI线程),主线程负责处理用户界面和交互,如果在其中执行耗时的数据库操作,会导致应用程序响应变慢甚至无响应,推荐使用AsyncTask、Thread或其他并发机制在后台线程中执行数据库连接和操作。
各位小伙伴们,我刚刚为大家分享了有关“安卓链接局域网mysql数据库”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!