qq_18286723
qq_18286723
2015-02-22 17:56
采纳率: 50%
浏览 1.6k

求大神解答衣蛾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条回答 默认 最新

  • u010593680
    Aaron_231 2015-02-24 03:39
    已采纳

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

    点赞 评论
  • caozhy

    检查你数据库的连接字符串、账号和配置。
    前面就错了,con.createStatement();因为con没有打开所以跟着错。

    点赞 评论
  • Lee_my_
    Lee_my_ 2015-02-23 01:54

    链接数据库有两个主要步骤:1、链接数据库,2、加载

    点赞 评论
  • Lee_my_
    Lee_my_ 2015-02-23 01:57

    你可以看看这篇博文,但愿对你有帮助
    http://blog.csdn.net/lee_my_/article/details/43022935

    点赞 评论
  • tuzhao
    tuzhao 2015-02-23 02:23

    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","");

    不知道你的数据库是怎么配置的,看你这路径貌似是本地的数据库.
    你可以这样写
    private static final String Driver="com.mysql.jdbc.Driver";
    private static final String UR="jdbc:mysql://localhost/数据库名字";
    private static final String USER="root";
    private static final String PW="";
    Class.forName(Driver);
    DriverManager.getConnection(UR,USER , PW);

            注意要讲JDBC的jar包复制到你的lib目录下....
    
    点赞 评论

相关推荐