摘要

基于大模型的智能衣橱管理系统安卓项目开发中,数据持久化存储是核心环节,用户账号、衣橱衣物信息、穿搭记录等数据都需要可靠数据库支撑。本文以 Windows11 + Android Studio + MySQL 8.0 为开发环境,手把手实现安卓端直连 MySQL 数据库,包含驱动配置、连接代码编写、权限放开、时区 / SSL / 防火墙等全场景报错解决。


一、前言

在智能衣橱项目中,安卓端需要与后端数据库进行数据交互:

  • 存储用户账号密码
  • 保存衣物图片、分类、标签
  • 记录虚拟试穿历史、穿搭方案
  • 实现多设备数据同步

安卓不能直接主线程连接 MySQL,必须使用 JDBC 连接 + 子线程异步访问,且需要配置驱动、开放数据库权限、关闭安全拦截,否则会出现各种连接失败。本文从环境准备 → 配置依赖 → 编写连接代码 → 测试连通 → 解决所有报错完整教学。


二、开发环境准备

  • Windows 11 64 位
  • Android Studio Hedgehog(新版通用)
  • MySQL 8.0.36(本地数据库)
  • 手机 / 模拟器与电脑在同一局域网
  • 项目语言:Kotlin

三、第一步:给 Android 项目添加 MySQL 驱动

1. 打开项目的 build.gradle (Module)

路径:Gradle Scripts → build.gradle (Module.app)

2. 在 dependencies 中添加 JDBC 驱动

gradle

dependencies {
    // MySQL 8.0 以上驱动(必须)
    implementation 'mysql:mysql-connector-java:8.0.33'

    // 其他依赖不变...
}

3. 点击 Sync Now 同步

等待驱动下载完成,不爆红即为成功。


四、第二步:配置 AndroidManifest 权限

打开:app → manifests → AndroidManifest.xmlmanifest 根节点 下添加:

xml

<!-- 网络权限 → 不添加永远连不上数据库 -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- 允许明文通信 → 解决 HTTP 拦截 -->
<application
    ...
    android:usesCleartextTraffic="true">

不配置这两行,连接直接失败!


五、第三步:MySQL 数据库配置(超级关键)

1. 允许远程访问(默认只允许本地访问)

  1. 打开 MySQL 安装目录下的 my.ini
  2. 找到 bind-address
  3. 改为:

plaintext

bind-address = 0.0.0.0
  1. 重启 MySQL 服务

2. 给用户开放远程权限

打开 Navicat /cmd 命令行 执行:

sql

-- 给 root 开放所有IP访问权限
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

3. 关闭 MySQL SSL 安全校验(安卓连接必关)

连接 URL 必须加:

plaintext

useSSL=false

4. Windows 防火墙放行 3306 端口

否则安卓会超时连不上

  • 打开 Windows 防火墙 → 高级设置
  • 入站规则 → 新建规则 → 端口 → 3306 → 允许连接

六、第四步:编写安卓连接 MySQL 代码

必须在子线程中执行,不能主线程连接!

1. 创建数据库连接工具类 DBUtil.kt

kotlin

import java.sql.Connection
import java.sql.DriverManager
import java.sql.SQLException

class DBUtil {
    companion object {
        // 【必须改成你自己的信息】
        private const val IP = "192.168.xxx.xxx"   // 你的电脑局域网IP
        private const val PORT = "3306"
        private const val DB_NAME = "smart_wardrobe"  // 你的库名
        private const val USER = "root"
        private const val PASSWORD = "123456"

        // 连接URL(时区+SSL关闭)
        private const val URL = "jdbc:mysql://$IP:$PORT/$DB_NAME" +
                "?useSSL=false" +
                "&serverTimezone=UTC" +
                "&allowPublicKeyRetrieval=true"

        // 获取连接
        fun getConnection(): Connection? {
            return try {
                Class.forName("com.mysql.cj.jdbc.Driver")
                DriverManager.getConnection(URL, USER, PASSWORD)
            } catch (e: SQLException) {
                e.printStackTrace()
                null
            }
        }
    }
}

2. 在 Activity 中异步测试连接

kotlin

// 按钮点击测试连接
btn_test_db.setOnClickListener {
    Thread {
        val conn = DBUtil.getConnection()
        if (conn != null) {
            runOnUiThread {
                tv_result.text = "✅ 数据库连接成功!"
            }
            conn.close()
        } else {
            runOnUiThread {
                tv_result.text = "❌ 连接失败"
            }
        }
    }.start()
}

七、第五步:测试运行

出现:

plaintext

✅ 数据库连接成功!

说明 安卓 ←→ MySQL 连接完全打通!


八、实战踩坑:所有报错解决方案

报错 1: Communications link failure

原因:IP 错误、防火墙没关、3306 没放行解决:

  • 电脑 cmd 输入 ipconfig 获取局域网 IPv4
  • 放行 3306 端口
  • 关闭电脑防火墙

报错 2: Access denied for user 'root'@'xxx.xxx.xxx.xxx'

原因:MySQL 没开远程权限解决:执行前面的授权 SQL

报错 3: No suitable driver found

原因:没导入 mysql-connector-java解决:检查 build.gradle 依赖

报错 4: Android 9.0 以上无法连接

解决:添加 android:usesCleartextTraffic="true"

报错 5: 主线程网络异常

解决:必须用 Thread {} 子线程连接

报错 6: Public Key Retrieval is not allowed

解决:URL 加

plaintext

&allowPublicKeyRetrieval=true

九、本项目数据库表结构设计(智能衣橱)

sql

CREATE DATABASE smart_wardrobe;

USE smart_wardrobe;

-- 用户表
CREATE TABLE user(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20),
    password VARCHAR(20)
);

-- 衣物表
CREATE TABLE clothes(
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    type VARCHAR(10),
    image_url VARCHAR(255),
    color VARCHAR(10)
);

安卓可直接进行 增删改查


十、总结

本文实现了:

  1. Android Studio 配置 MySQL 驱动
  2. 安卓权限配置
  3. MySQL 远程访问全开
  4. 子线程 JDBC 连接
  5. 所有报错一站式解决
  6. 智能衣橱项目数据库实战

安卓直连 MySQL 适合课程设计 / 实训项目正式项目推荐使用:SpringBoot 接口 + Retrofit

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐