目录
1.在mysql中加一个权限比较高的用户
1.1查看一下mysql用户及其权限
1.2增加一个用户到mysql
2.在安卓中的准备工作
2.1下载mysql-connector-java-5.1.49.jar和
ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar
2.2将这个jar包配置到安卓项目里
2.3配置对应api的网络权限,我的是api26
2.4注意事项
2.4.1如何查自己电脑的IP,
2.4.2关于mysql *.jar的使用
2.4.3一定要配置网络权限和导好包
3.代码
3.1 MainActivity.java
3.2查询成功的样子
4.结束啦!!!
序言:前段时间老师布置了一个通讯录的作业,有用到数据库,我想着我自己用的数据库工具就是mysql,所以就一直在连安卓与mysql,但一直没连成功,直到我历经各种博客后,我连成功了,所以打算写篇记录安卓连接mysql的博客。还有就是发现我之前写的两篇博客里居然有两个收藏了,哇塞,超开心的!!!感觉得到了认可。
1.在mysql中加一个权限比较高的用户
1.1查看一下mysql用户及其权限
查询语句
SELECT user,host FROM mysql.user;
注意要到你电脑安装MySQL文件的目录下bin目录下打开,或者是cd到对应的目录文件下,一定要进入到bin目录下呀!!!
比如我的目录就是D:\program\mysql-8.0.28-winx64\bin
看到local和root对应的host都是%,这表示他们权限最高了。
1.2增加一个用户到mysql
语句
create user 'local2'@'%' identified by '123456';
grant all privileges on *.* to 'local2'@'%';
flush privileges;
效果对比图
增加local2成功
完成前期准备工作啦!!!
2.在安卓中的准备工作
2.1下载mysql-connector-java-5.1.49.jar和
ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar(记2023.2.1,只是用MySQL其实不需要加载这个包的,个人失误)
下拉一点就能看见了
2.2将这个jar包配置到安卓项目里
2.3配置对应api的网络权限,我的是api26
或许你也可以自己上网搜”api某某的网络权限怎么开“,
这样子看自己的api是多少
2.4注意事项
2.4.1如何查自己电脑的IP,
如果你的电脑连的是你自己手机的热点,你可以这样查到自己电脑ip,ip后面的就是你电脑的IP
如果是用网线的,就可以右键cmd以管理员身份运行,打ipconfig,最后一个那里的ipv4的地址就是你本电脑的IP,如果还是不会可以搜一下百度啦!
2.4.2关于mysql *.jar的使用
我发现mysql8.多的jar包在安卓好像不太适用,推荐下5.多的
2.4.3一定要配置网络权限和导好包
很重要哈!!!
3.代码
3.1 MainActivity.java
public class MainActivity extends AppCompatActivity {
private EditText phoneSecEditText;
private TextView resultView;
private Button queryButton;
private String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String driver = "com.mysql.cj.jdbc.Driver";
new Thread(() -> {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection cn= DriverManager.getConnection("jdbc:mysql://你的IP:3306/你的数据库?useUnicode=true&characterEncodeing=UTF-8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true","local2","123456");
//Class.forName(driver).newInstance();
// Connection conn=(Connection) DriverManager.getConnection(url,user,password);
Statement stmt = cn.createStatement();
//测试一下连接情况
String sql ="Select * from tb_brand";
ResultSet rs=stmt.executeQuery(sql);
int j=0;
while(rs.next()) {
String i = rs.getString("brand_name");
j++;
System.out.println(i + "\n");
}
} catch (ClassNotFoundException e) {
System.out.println("连接数据库失败");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}).start();}}
3.2查询成功的样子
4.结束啦!!!
如果一直有查不成功的,可以先看自己的sql语句或者网络权限,也可以给我留言喔。希望咱能一起进步学习。其实代码一直都不多,我个人感觉难的一直是配置,所以一直连不上的时候想想网络权限开没,是不是jar的问题,会不会是mysql服务没打开,会不会是自己的用户权限没配好。