qq_18286723 2015-02-22 17:56 采纳率: 50%
浏览 1639
已采纳

求大神解答衣蛾android问题

本人是菜鸟,才学android没有几天,求大神解答下问题:
我写了一段android连接mysql数据库的代码,日志显示:caused by: android.os.NetworkOnMainThreadException,另外显示有两处错误(错误行代码有注释)

package com.example.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DBUtil {
public static Connection getConnection()
{
Connection con=null;
try
{

Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/phpmyadmin/sql.php?db=test&table=test_table&server=1&target=&token=8d4f159026cbb703acf36034c2082a64#PMAURL-2:db_structure.php?db=test&table=&server=1&target=&token=c5d26db979b50cc6775e3dac84699d95","root",""); //这一行有错

}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}

public static String selectPwd(String ID)
{
    String result=null;
    try
    {
        Connection con=getConnection();         
        Statement st=con.createStatement(); //这一行有错  
        String sql="select password from test_table where ID='"+ID+"'";
        ResultSet rs=st.executeQuery(sql);
        if(rs.next())
        {
            result=rs.getString(1);
        }
        rs.close();
        st.close();
        con.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return result;      
}

}

  • 写回答

5条回答 默认 最新

  • Aaron_231 2015-02-24 03:39
    关注

    目测没有运行在android上的mysql数据库吧,所以我认为你是用远程连接来连接的,并且从报错:caused by: android.os.NetworkOnMainThreadException明显是在主线程中发起了网络请求。现在一般手机是不允许在主线程中进行网络请求的,所以,解决方法就是将连接数据库的相关操作放到其他线程咯!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题