Android studio问题:链接数据库异常,单独建类可以输出,但是总是报connection和statement的错误

[复制链接]
查看11 | 回复5 | 2021-1-27 06:36:13 | 显示全部楼层 |阅读模式
本人在写一个app,需要链接数据库取出数据,放在list里面,在链接数据库的时候,自己写了一个测试类,可以在控制台输出数据库的信息,但是在activity对应的后台文件中,用数据库的代码就报connection和statement的错误
。(测试类用本机IP地址并不能访问到数据库,用的是localhost,排除本地链接问题)
```
publicclasstestActivityextendsAppCompatActivity
```
```{
```
privatestaticfinalintCHANGE_TEXT=1;
privatestaticTextViewtextView;

privateHandlerhandler=newHandler(){

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Buttonbutton=findViewById(R.id.button4);
textView=findViewById(R.id.textView4);
button.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.button4:
//开启一个子线程
newThread(newRunnable(){
@Override
publicvoidrun(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connectioncn=DriverManager.getConnection("jdbc:mysql://*********/test","root","123456");
Stringsql="select*fromxy";
Statementst=(Statement)cn.createStatement();
ResultSetrs=st.executeQuery(sql);
while(rs.next()){
intmybook=rs.getInt(1);
Log.i("testActivity",String.valueOf(mybook));
System.out.println(mybook);
}
cn.close();
st.close();
rs.close();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}).start();
break;
default:
break;
}
}
});
}
}





分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:36:13 | 显示全部楼层


看上图中的错误信息,很明显就是访问不到指定地址的数据库。
测试类用本机IP地址并不能访问到数据库,用的是localhost,排除本地链接问题
结合你的这个说法,localhost可以访问到,但是用本机IP访问不到,最大的可能就是防火墙,你把防火墙关了试试。
建议两点
1、关闭防火墙
2、先保证你的测试类能够用IP正常访问,之后再去测试app
回复

使用道具 举报

千问 | 2021-1-27 06:36:13 | 显示全部楼层
我把测试类的IP访问到了,将本地的IP设置可以远程访问,但是app里面还是会报错


回复

使用道具 举报

千问 | 2021-1-27 06:36:13 | 显示全部楼层
你是不是在虚拟机中运行App,如果是的话,把192.168.137.1,改成10.0.2.2试试,再不行改成127.0.0.1
回复

使用道具 举报

千问 | 2021-1-27 06:36:13 | 显示全部楼层
数据库是布署在本地pc:192.168.137.1上?
app运行的avd或真机,能ping通192.168.137.1吗,先得确认认两者之间的网络是通的。
回复

使用道具 举报

千问 | 2021-1-27 06:36:13 | 显示全部楼层
127.0.0.1可以在测试类访问,但是10.0.2.2不行,而且两个地址在app里面都不行,报错依然是链接超时;会不会是代码问题?
数据库确实部署在本机上,测试类通过本机的IP访问数据库,有没有其他测试两者网络的方法哇?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行