问题描述
- 求大神解答衣蛾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; }
}
解决方案
目测没有运行在android上的mysql数据库吧,所以我认为你是用远程连接来连接的,并且从报错:caused by: android.os.NetworkOnMainThreadException明显是在主线程中发起了网络请求。现在一般手机是不允许在主线程中进行网络请求的,所以,解决方法就是将连接数据库的相关操作放到其他线程咯!!
解决方案二:
检查你数据库的连接字符串、账号和配置。
前面就错了,con.createStatement();因为con没有打开所以跟着错。
解决方案三:
链接数据库有两个主要步骤:1、链接数据库,2、加载
解决方案四:
你可以看看这篇博文,但愿对你有帮助
http://blog.csdn.net/lee_my_/article/details/43022935
解决方案五:
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目录下....