首页 > 数据库 >关于安卓开发远程连接mysql数据库1

关于安卓开发远程连接mysql数据库1

时间:2024-03-06 15:46:34浏览次数:24  
标签:web 安卓 数据库 static mysql 连接

一般关于安卓远程连接数据库通常有两种方法,一种就是直接通过安卓本身远程连接数据库,另一种是通过一个web服务中间层连接mysql(安卓向web发送请求,web实现对数据库的增删改查操作)。两种方法各有优缺点,取决于具体情况:

  1. 直接连接:

    • 优点:直接连接 MySQL 数据库,可以实现高效的数据交互,减少中间环节,降低延迟。
    • 缺点:安全性较低,存在 SQL 注入等安全风险;维护性较差,客户端需要直接处理数据库连接和操作,不利于统一管理和维护。
  2. 通过 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;

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博客

标签:web,安卓,数据库,static,mysql,连接
From: https://www.cnblogs.com/czfznb/p/18056760

相关文章

  • etcd 数据库的备份和恢复
    在K8s中,很多etcd服务都是以容器的方式运行,比如使用rancher和kubeadm部署管理的容器等。由于kubeadm部署的etcd没有etcdctl命令,需要下载etcd二进制包。通过在宿主机上使用etcdctl操作容器中的etcd。1、etcdctl安装#wgethttps://github.com/etcd-io/etcd/releases/downl......
  • mysql没走索引原因分析(转)
    原文:https://juejin.cn/post/71149875593818603821、问题工作中,经常遇到这样的问题,我明明在MySQL表上面加了索引,为什么执行SQL查询的时候却没有用到索引?同一条SQL有时候查询用到了索引,有时候却没用到索引,这是咋回事?原因可能是索引失效了,失效的原因有以下几种,看你有没有踩过类......
  • docker-部署mysql8,并映射数据目录和日志目录
    下载镜像dockerpullmysql:8.0.21在主机上准备目录mkdir-p/mysql8/data/mysql8/log  /mysql8/cnf编写配置文件[root@localhostcnf]#catmy.cnf[mysqld]datadir=/mysql/datalog-error=/mysql/log/mysql-log.logpid-file=/mysql/mysqld/mysqld.pids......
  • JDBC中的数据库事务实现
    1packagecom.atsyc.api.transaction;23//银行卡业务方法,调用dao方法45importorg.junit.Test;67importjava.sql.Connection;8importjava.sql.DriverManager;910/*11*TODO:12*事物添加是在业务方法中13*利用trycatch代码块,......
  • 神通数据库异机恢复(主库不停机)
    1.主库上需要确保在归档模式[root@localhostbin]#./isql-hlocalhost-p2003-dHXLsysdbaSQL>selectlog_modefromv$database;LOG_MODE------------ARCHIVELOG(1row)若数据库不在归档模式,需要按照如下命令进行修改为归档模式mkdir-p/opt/ShenTong/archalterd......
  • mysql cpu 1300% 耗尽服务器cpu资源 系统变慢问题排查解决
    每到下午用户使用高峰期发现16核的服务器mysql的cpu经常占用超过1300% 总cpu占用95%以上,以前0.1秒的查询居然要查询10几秒用showprocesslist  命令查看mysql发现很多 select*frome_task_assignment_odmwheretask_code='xxx'看了下这个表有400多万数据,task_code没......
  • mysql视图 触发器 事务 存储过程
    创建视图createviewemp2depasselectemp.*,dep.nameasdep_namefromempinnerjoindeponemp.dep_id=dep.id;   mysql>updateemp2depsetname="EGON"whereid=1;QueryOK,1rowaffected(0.05sec)Rowsmatched:1Changed:1Warnings:0......
  • MySQL 数据库巡检都有哪些内容
    一套正常运行的系统是一个复杂的系统工程,牵涉到主机、操作系统、网络、数据库、中间件、底层存储,还有系统的核心:应用。任何层面的故障都可能造成系统的不可用。今天聊一聊数据库层面的巡检问题。数据库巡检的目的:保障数据库的正常运行,保证数据的安全性,完整性、可靠性。这篇文章......
  • mysql报错代码汇总
    先给大家看几个实例的错误分析与解决方案。1.ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/data/mysql/mysql.sock'问题分析:可能是数据库没有启动或者是端口被防火墙禁止。解决方法:启动数据库或者防火墙开放数据库监听端口。2.ERROR1045......
  • 神通数据库异机恢复
     1.主库上需要确保在归档模式[root@localhostbin]#./isql-hlocalhost-p2003-dHXLsysdbaSQL>selectlog_modefromv$database;LOG_MODE------------ARCHIVELOG(1row) 若数据库不在归档模式,需要按照如下命令进行修改为归档模式mkdir-p/opt/ShenTo......