Android studio连接mysql(能踩的坑都踩了)
2023-04-18 14:28:51 时间
1.都看到这儿了,听我一句劝,mysql版本是8.xxx的就可以卸载重装5.xxx的了(不要侥幸)
2.Android studio用mysql-connector-java用8.xxx的不行,一直报错,原因未知,目前没有教程解决这个问题。所以只能降低mysql的版本。
安装MySQL
安装MySQL:安装教程
1.建议就按照这个教程走,方便后面使用改数据(直接改my.ini),不要直接运行安装程序点点点。
2.安装命令是mysqld install;不是mysql install。一定注意别少了'd',(我手贱自己手敲命令,一直报错,还搜不到原因,还眼瞎在这卡了一天,)
3.安装成功后登录,不要输:mysql -uroot -p密码。要先输:mysql -uroot -p,回车,然后输密码。
4.改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
5.开启远程连接:
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' ;
2. flush privileges;
配置mysql-connector-java
1.下载mysql-connector-java
mysql-connector-java各种版本下载地址:链接
mysql与connector版本对照表:链接
5.7的mysql用5.1的connector就行
加载mysql-connector-java到Android中
将下载好的mysql-connector-java包放入项目中的lib文件夹中,如图:
一定要点Add As Library,才能加载成功。
代码
链接数据库只能在子线程中运行,所以一个MainActivity,一个工具类Connection。
(代码网上很多,这个也是抄的,我也不记得抄的谁的了,亲测能用)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Connection.mymysql();
}
public class Connection {
private static final String TAG = "mysql11111";
java.sql.Connection conn=null;
public static void mymysql(){
final Thread thread =new Thread(new Runnable() {
@Override
public void run() {
while (!Thread.interrupted()) {
try {
Thread.sleep(100); // 每隔0.1秒尝试连接
} catch (InterruptedException e) {
Log.e(TAG, e.toString());
}
// 1.加载JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");
Log.v(TAG, "加载JDBC驱动成功");
} catch (ClassNotFoundException e) {
Log.e(TAG, "加载JDBC驱动失败");
return;
}
// 2.设置好IP/端口/数据库名/用户名/密码等必要的连接信息
String ip = "192.168.43.97";
int port = 3306;
String dbName = "mysql";
String url = "jdbc:mysql://" + ip + ":" + port
+ "/" + dbName+"?useUnicode=true&characterEncoding=utf-8&useSSL=false";
// 构建连接mysql的字符串
String user = "root";
String password = "lyx123";
// 3.连接JDBC
try {
java.sql.Connection conn = DriverManager.getConnection(url, user, password);
Log.d(TAG, "数据库连接成功");
conn.close();
return;
}
catch (SQLException e) {
Log.e(TAG, e.getMessage());
}
}
}
});
thread.start();
}
}
1.记得改ip(数据库运行的电脑的ip)、数据库名(dbname)、用户名和密码(user、password)。
2.url中部分文章没有加"?useUnicode=true&characterEncoding=utf-8&useSSL=false"也能连接成功,建议加上,能避免很多问题。
3.添加网络权限到Mainfest里面:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
运行成功:
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!