折磨已久的在Android studio中连接Mysql数据库的各种问题,疯狂的折磨,疯狂的解决,度娘也不能知道我的问题!!!那么接下来,一一道来问题及解决办法。。。。。。。。。。
1、在Java代码中JDBC连接本地的Mysql数据库,没有任何问题,就是加载驱动、建立连接,连接的时候使用localhost或者127.0.0.1,连接的代码,这里,你应该没有任何问题:
//加载驱动
try {
//这里的cj是因为我是用的是mysql-connector-java-8.0.22.jar
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载驱动成功了!");
}catch(Exception e)
{
System.out.println("加载驱动失败");
//建立连接
Connection con=null;
String uri="jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=UTC";
String user="你数据库的用户名";
String password="你用户名对应的密码";
try {
con=DriverManager.getConnection(uri,user,password);
System.out.println("连接成功!");
}catch(Exception e)
{
System.out.println("连接失败!");
}
到这里你在Java代码中如果测不同就不要再往看了。。。。
2、第一步成功了,但是但是,我来到了最新版本的Android Studio里面,还是同样的连接,还是原来的代码,就出现了一些列问题了,但归根到底就是一个问题,那就是连接不成功,关键是也没报什么错误。。。。那我们就一一来看,不成功的原因解析:
第一:你的数据库没有授权可远程访问?可能你会问,我的安卓模拟器是在我的本地机启动的,我的数据库也在这个机器上,为啥需要数据库可远程访问?那问你一句话,你的Android模拟器和你的电脑是同一个机器吗?。。。。。。。。。。。你的模拟器上有mysql数据库吗?回答肯定是否定的,那么这里,你就应该可以理解为什么需要你的数据库可远程访问了,那问题又来了,如何设置Mysql数据库可远程访问,百度一下,网络上有N多回答:可以参考链接:MySQL【远程用户】授权设置(一)_探索丶挑战丶突破-CSDN博客,这个里面有非常详细的操作,去看,去做就可以了!!!
此时,你应该使用另一台机器的MySQL远程访问进行测试,如果能够测试连接通,那么说明你当前用户的远程访问权限设置没有任何问题了。
第二:当第一部完成之后,在你的安卓程序里面应该开始编写连接mysql数据的代码了,我把主要的代码放在下边,请结合自己的设计,进行修改和使用:
public class Log extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.log_activity);
Button bt=(Button)findViewById(R.id.lianjie);
bt.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载成功!");
}catch(Exception e)
{
System.out.println("加载驱动失败");
}
//建立连接
Connection con=null;
String uri="jdbc:mysql://IP:3306/test";
String user="root";
String password="root";
try {
System.out.println("这里被执行了!");
con= DriverManager.getConnection(uri,user,password);
System.out.println("连接成功!");
}catch(Exception e)
{
System.out.println("连接失败!");
}
}
}).start();
}
});
}
}
这段代码其实就是Java连接数据库的代码,注意:代码连接中的IP请使用你自己当前的IP地址替换,如果你不知道自己的IP是多少,请进入cmd运行界面,输入:ipconfig进行查询。
上边代码,我测试过,没有问题,但但但。。。。你拿到后,可能还是连接不成功,也许你在反复的寻求代码的错误,此时就该看我的第三了;
第三:边的流程做完之后,为什么还是连接不成功呢????这一步发现用的是
mysql-connector-java-8.0.22.jar
这个jar包,可在Java中测试木有问题,但在android中就是不行,为什么呢?版本高了!!!至于为什么高版本就不可以呢?只有一个理解,不支持,至于为什么不支持!!!我也不知道!!!!,那么为了解决问题,我们就换一个低版本吧:mysql-connector-java-5.1.47.jar,换成这个,没问题!,这个的下载地址,请去我的网盘提取:链接:https://pan.baidu.com/s/1bEbrIJrskpOW0x-l51TUbw
提取码:WSYJ
,然后放到libs下边,添加引用,注意:把原来的8.0.22版本要从引用里面移除,至于怎么移除:
》
选中你要移除的jar包,点上方的减号,然后点击OK就可以了,这一步完成之后,就快了,但但但。。。。可能还是连接不成功,那就接着尝试我的第四吧。
第四:关闭你的电脑的防火墙,至于怎么关闭,那就请自己百度吧!
好,大功告成!



