各位大佬,我最近在做一个Android功能,遇到了一个麻烦.
我自己写了一个DBconnection类,让别的程序来调用此类以实现从远程服务器查询数据的功能,DBconnection这个类我已经在eclipse中成功的取出数据了,而且在Androidstudio中确定已经将mysql的驱动加入library了,数库库操作也是在子线程中进行的,然而按钮一点击这个app就闪退掉了,求大佬们帮忙看一下
以下是按钮点击查询
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
try {
String sql = "select*from ****";
DBconnection con = new DBconnection();
ResultSet rs=null;
String str="";
rs=con.doQuery(sql,"dbname");
while(rs.next()){
str+= rs.getString(1);
}
Toast.makeText(Login.this,str,Toast.LENGTH_LONG).show();//我的控制台不知道为什么用不了,所以只能用toast看了
con.close();
}catch(SQLException e){}
}
}).start();
}
});
}
});
以下是我自己写的DBconnection类,这个类在eclipse中已经能成功的取数据了
public class DBconnection {
Connection conn=null;
Statement pre=null;
ResultSet rs=null;
public Connection getConn(String dbname){
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){}
try {
//----------------------------------get connection-------
String uri = "jdbc:mysql://***.**.***.**:3306/" + dbname + "";
String user = "*****";
String pwd = "*******";
conn = DriverManager.getConnection(uri, user, pwd);//get connection
}catch(SQLException e1){}
return conn;
}
public ResultSet doQuery(String sql,String dbname){
try {
pre=this.getConn(dbname).prepareStatement(sql);
rs=pre.executeQuery(sql);
} catch (SQLException e) {}
return rs;
}
public void close(){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(pre!=null){
pre.close();
pre=null;
}
if(conn!=null){
conn.close();
conn=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}