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

移动开发 码拜 5年前 (2016-09-26) 1058次浏览
本人的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数据库内容如下
android模拟器访问本地电脑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
求高手指点为啥查询不了
解决方案

40

引用:
Quote: 引用:

通过debug看一下你连接数据库成功了吗,可能是连接数据库失败然后阻塞了

具体怎么看啊?小白求指点,可否私聊android模拟器访问本地电脑Mysql数据库出错

812817883 你加本人qq吧,尽量帮你解决


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android模拟器访问本地电脑Mysql数据库出错
喜欢 (0)
[1034331897@qq.com]
分享 (0)