android模拟器访问本地电脑Mysql数据库出错

李逵2022 2016-09-02 05:06:03
我的application程序如下
public class MainActivity extends Activity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
String sql="select * from test";
Statement statement = (Statement) getConnection().createStatement();
getConnection().close();
PreparedStatement psmt=(PreparedStatement) getConnection().prepareStatement(sql);
ResultSet rs=psmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public static Connection getConnection() throws Exception {
String driverName = "com.mysql.jdbc.Driver"; // 加载JDBC驱动
String dbURL = "jdbc:mysql://10.0.0.2:3306/localhost_3306?auotReconnect=true&useUnicode=true&characterEncoding=utf8"; // 连接服务器和数据login
// System.out.print(dbURL);
String userName = "root"; // 用户名
String userPwd = "kaka3511"; // 密码
Class.forName(driverName);
return (Connection) DriverManager.getConnection(dbURL, userName, userPwd);
}
}
Mysql数据库内容如下

运行之后,当点击button之后,Logcat出现如下信息
09-02 08:57:24.484: I/Choreographer(1224): Skipped 39 frames! The application may be doing too much work on its main thread.
09-02 08:57:24.744: W/System.err(1224): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
09-02 08:57:24.774: W/System.err(1224): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
09-02 08:57:24.824: W/System.err(1224): at java.lang.reflect.Constructor.constructNative(Native Method)
09-02 08:57:24.834: W/System.err(1224): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
09-02 08:57:24.844: W/System.err(1224): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
09-02 08:57:24.844: W/System.err(1224): at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
09-02 08:57:24.854: W/System.err(1224): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
09-02 08:57:24.854: W/System.err(1224): at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2479)
09-02 08:57:24.864: W/System.err(1224): at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
09-02 08:57:24.864: W/System.err(1224): at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
09-02 08:57:24.864: W/System.err(1224): at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
09-02 08:57:24.874: W/System.err(1224): at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
09-02 08:57:24.874: W/System.err(1224): at java.lang.reflect.Constructor.constructNative(Native Method)
09-02 08:57:24.884: W/System.err(1224): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
09-02 08:57:24.884: W/System.err(1224): at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
09-02 08:57:24.904: W/System.err(1224): at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
09-02 08:57:24.904: W/System.err(1224): at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
09-02 08:57:24.915: W/System.err(1224): at java.sql.DriverManager.getConnection(DriverManager.java:175)
09-02 08:57:24.915: W/System.err(1224): at java.sql.DriverManager.getConnection(DriverManager.java:209)
09-02 08:57:24.924: W/System.err(1224): at com.example.testmysql.MainActivity.getConnection(MainActivity.java:53)
09-02 08:57:24.934: W/System.err(1224): at com.example.testmysql.MainActivity$1.onClick(MainActivity.java:30)
09-02 08:57:24.964: W/System.err(1224): at android.view.View.performClick(View.java:4084)
09-02 08:57:25.004: W/System.err(1224): at android.view.View$PerformClick.run(View.java:16966)
09-02 08:57:25.004: W/System.err(1224): at android.os.Handler.handleCallback(Handler.java:615)
09-02 08:57:25.004: W/System.err(1224): at android.os.Handler.dispatchMessage(Handler.java:92)
09-02 08:57:25.014: W/System.err(1224): at android.os.Looper.loop(Looper.java:137)
09-02 08:57:25.014: W/System.err(1224): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-02 08:57:25.024: W/System.err(1224): at java.lang.reflect.Method.invokeNative(Native Method)
09-02 08:57:25.044: W/System.err(1224): at java.lang.reflect.Method.invoke(Method.java:511)
09-02 08:57:25.044: W/System.err(1224): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-02 08:57:25.104: W/System.err(1224): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-02 08:57:25.104: W/System.err(1224): at dalvik.system.NativeStart.main(Native Method)
09-02 08:57:25.104: W/System.err(1224): Caused by: java.net.SocketException: android.os.NetworkOnMainThreadException
09-02 08:57:25.154: W/System.err(1224): at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:410)
09-02 08:57:25.154: W/System.err(1224): at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:271)
09-02 08:57:25.174: W/System.err(1224): at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
09-02 08:57:25.174: W/System.err(1224): ... 25 more
求大神指教为啥查询不了
...全文
540 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveWyf_ 2016-09-06
  • 打赏
  • 举报
回复
引用 2 楼 kaka3511 的回复:
[quote=引用 1 楼 qq_25412055 的回复:] 通过debug看一下你连接数据库成功了吗,可能是连接数据库失败然后阻塞了
具体怎么看啊?小白求指教,可否私聊[/quote] 812817883 你加我qq吧,尽量帮你解决
李逵2022 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 qq_25412055 的回复:
通过debug看一下你连接数据库成功了吗,可能是连接数据库失败然后阻塞了
具体怎么看啊?小白求指教,可否私聊
LoveWyf_ 2016-09-02
  • 打赏
  • 举报
回复
通过debug看一下你连接数据库成功了吗,可能是连接数据库失败然后阻塞了

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧