Android Studio链接数据库(MySQL)步骤及问题

本文详细介绍了如何在Android应用中连接MySQL数据库,包括在libs中添加jdbc库,设置网络权限,注意线程安全,解决Android 4.0后的主线程限制,以及处理远程访问权限问题。特别提醒,Android访问数据库的IP不能用localhost,需用本地IP,并且要注意mysql和jdbc版本匹配,如8.0+版本需使用新版jdbc驱动。
摘要由CSDN通过智能技术生成

一、步骤

1、在libs加入jdbc,右键并选择Add As Library
在这里插入图片描述在这里插入图片描述
2、manifests中设置网络权限。

在这里插入图片描述
写上

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

3、Android4.0以后版本不支持在主线程中执行耗时操作,对数据库的操作要新开一个线程。
简单示例:(具体应用涉及到线程数据传递)

new Thread(new Runnable() {
@Override
public void run() {
String CLS=“com.mysql.jdbc.Driver”;
String URL=“jdbc:mysql://IP地址:3306/数据库名?serverTimezone=UTC”;
String USER=“数据库用户名”;
String PWD=“数据库密码”;
String test=“”;
try {
Class.forName(CLS).newInstance();
Connection conn=(Connection) DriverManager.getConnection(URL,USER,PWD);
String sql=“要执行的sql语句”;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while (rs.next()){
test+=rs.getString(“name”);
Log.v(“debug”,“AAAA”);
Log.v(“debug”,test);
}
} catch (ClassNotFoundException | SQLException | IllegalAccessException | InstantiationException e) {
e.printStackTrace();
}
}
}).start();

4、 因Android运行在模拟器上,访问数据库的ip不能是127.0.0.1或localhost,应该为本主机的IP地址,可以用win + r 输入 cmd内 用ipconfig查询本地IP。
在这里插入图片描述
5、mysql的用户要保证能有权限远程访问(用户要以@%结尾,怎么操作可以百度)
是否能远程访问可以用navicat测试,下图为没权限的root用户
在这里插入图片描述

二、遇到的问题

1、仔细看好mysql和jdbc的版本。一般5.6的mysql可以用mysql-connector-java-5.1.8等一些jdbc。但我尝试mysql8.0+版本与8.0+的jdbc连接不上数据库app闪退。8.0+的mysql也可以使用低版本的jdbc。

使用jdbc5+

Class.forName(“com.mysql.jdbc.Driver”);

使用jdbc8+,修改为

Class.forName(“com.mysql.cj.jdbc.Driver”);

2、一定注意远程访问权限的问题(上述)
3、要用主线程外的线程访问数据库(上述)

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值