在android应用上直接访问数据库

来源:互联网 发布:android是什么软件 编辑:程序博客网 时间:2024/04/29 09:44

今天突然想在Android的应用上直接访问mysql数据库,结果还是遇到一些困难,所以和大家分享下。虽然不提倡把在前端直接访问数据库,因为安全性太差了,什么都暴露在外面的。
1.用JDBC来访问的话要注意版本的问题 ,注意架包和mysql的版本是否一致,这个很重要 很多人都以为是自己代码的问题,一直在研究自己的代码,怎么研究也没有错 结果发现是架包的问题
2.如何接下来就是撸代码了
Class.forName(“com.mysql.jdbc.Driver”);// 动态加载mysql驱动
conn = DriverManager.getConnection(url,user,password);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
3.一开始问也以为前两步搞定完就可以连上了 结果我发现我太天真了,
在Android中进行网络连接才需要开多线程,但没想到连接数据库也需要开多线程的,一开始没开老是连不上,唉 那个蛋疼呀。
4.但是,人生坎坷呀,搞完又出现新的问题了,这个问题最坑爹,对于一个Android开发来说,一般都是后台直接给接口,哪里需要自己去搞数据库,原来为了安全起见,一般数据库都只允许本机访问,所以对在Android设备上是属于远程访问的,这是不被允许的,属于需要自己去设置数据库。
经过几番折腾才搞定这个问题
这是从其他人那里复制过来的解决方法
1、改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”

mysql -u root -p

mysql>use mysql;

mysql>update user set host = ‘%’ where user = ‘root’;

mysql>select host, user from user;

2、授权法

在安装mysql的机器上运行:

1、d:\mysql\bin>mysql -h localhost -u root

//这样应该可以进入MySQL服务器

2、mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’WITH GRANT OPTION

//赋予任何主机访问数据的权限

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WI

TH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON . TO ‘myuser’@’192.168.1.3’IDENTIFIED BY

‘mypassword’ WITH GRANT OPTION;

3、mysql>FLUSH PRIVILEGES

//修改生效

4、mysql>EXIT

退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录

0 0
原创粉丝点击