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

一、步骤

1、在libs加入jdbc,右键并选择Add As Library
Android Studio链接数据库(MySQL)步骤及问题_第1张图片Android Studio链接数据库(MySQL)步骤及问题_第2张图片
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。
Android Studio链接数据库(MySQL)步骤及问题_第3张图片
5、mysql的用户要保证能有权限远程访问(用户要以@%结尾,怎么操作可以百度)
是否能远程访问可以用navicat测试,下图为没权限的root用户
Android Studio链接数据库(MySQL)步骤及问题_第4张图片

二、遇到的问题

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、要用主线程外的线程访问数据库(上述)

你可能感兴趣的:(数据库,android,studio,mysql)