一般关于安卓远程连接数据库通常有两种方法,一种就是直接通过安卓本身远程连接数据库,另一种是通过一个web服务中间层连接mysql(安卓向web发送请求,web实现对数据库的增删改查操作)。两种方法各有优缺点,取决于具体情况:
-
直接连接:
- 优点:直接连接 MySQL 数据库,可以实现高效的数据交互,减少中间环节,降低延迟。
- 缺点:安全性较低,存在 SQL 注入等安全风险;维护性较差,客户端需要直接处理数据库连接和操作,不利于统一管理和维护。
-
通过 Web 中间层连接:
- 优点:通过 Web 中间层可以实现数据的加工处理、权限控制等功能,提高安全性;提供了更好的抽象层,方便管理和维护。
- 缺点:增加了系统的复杂度和延迟,可能会影响性能。
综合考虑,一般情况下建议使用通过 Web 中间层连接 MySQL 数据库,可以提高系统的安全性和可维护性。在性能要求较高且安全性要求不是特别严格的情况下,直接连接也是一种选择。
这里先介绍直连方法:
第一步先将mysql驱动安装在安卓开发项目上面,可以在网上找到jar包添加到项目文件的lib目录下,然后添加到库就好了。也可以在配置文件中添加依赖语句,让软件自行下载,kotlin的依赖语句为dependencies { implementation("mysql:mysql-connector-java:8.0.26") },写完语句刷新一下依赖就可以。
第二步连接数据库需要网络请求,所以要在安卓配置文件中加入<uses-permission android:name="android.permission.INTERNET" />语句用于获得访问网络的权限
第三步就是按照编写web网站一样编写连接数据库的后端代码,唯一不同点就是需要将原先的localhost换成自己的ip地址(不知道的可以在命令框中输入ipconfig命令查看,ipv4地址就是本机ip地址)
下面是我写的数据库工具类代码
package com.myapplication10.utils;标签:web,安卓,数据库,static,mysql,连接 From: https://www.cnblogs.com/czfznb/p/18056760
import java.sql.Connection;
import java.sql.DriverManager;
/**
* function: 数据库工具类,连接数据库用
*/
public class JDBC {
private static String driver = "com.mysql.jdbc.Driver";// MySql驱动
private static String dbName = "demo9";// 数据库名称
private static String user = "root";// 用户名
private static String password = "123456";// 密码
public static Connection getConn(){
Connection connection = null;
try{
Class.forName(driver);// 动态加载类
String ip = "192.168.137.1";// 写成本机地址,不能写成localhost,同时手机和电脑连接的网络必须是同一个
// 尝试建立到给定数据库URL的连接
connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName+"?useSSL=false",
user, password);
}catch (Exception e){
e.printStackTrace();
}
return connection;
}
}
其中数据库用户名,密码,数据库名称,ip地址,都需要根据实际情况更换。
下面就是正常编写实体类,数据库操作类等,和之前写web网站没啥不同
需要注意一点的就是,如果运行之后,出现报错,很有可能是数据库mysql权限的问题,需要在mysql中创建一个超级用户才能实现通过网络远程连接mysql,不然会被mysql拦截。
如何创建超级用户,参考网址mysql建立超级用户-CSDN博客