java - 我正在尝试使用 localhost 创建登录
问题描述
我想创建一个调查应用程序,但它卡在if (con == null) {z = "Please check your internet connection";
我在谷歌上搜索过,而且我是 java 新手,我知道这意味着应用程序尚未连接到连接,但我不知道我在哪里做错了
这是 Connectionclass.java 用于连接到本地主机
import android.annotation.SuppressLint;
import android.os.StrictMode;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionClass {
@SuppressLint("NewAPI")
public Connection Conn() {
String kelas = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://10.0.2.2:3306/kartu_tani";
String uname = "";
String password = "";
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection connection = null;
try {
Class.forName(kelas).newInstance();
connection = DriverManager.getConnection(url, uname, password);
} catch (ClassNotFoundException e) {
Log.e("ERROR", e.getMessage());
} catch (SQLException e) {
Log.e("ERROR", e.getMessage());
} catch (Exception e) {
Log.e("ERROR", e.getMessage());
}
return connection;
}
}
这是登录页面
import androidx.appcompat.app.AppCompatActivity;
import android.app.DownloadManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.telecom.Call;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.RequestQueue;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.example.e_survey.Background;
import com.example.e_survey.ConnectionClass;
import com.example.e_survey.Model.ProfilDesa;
import com.example.e_survey.R;
import com.example.e_survey.Util.Constant;
import com.example.e_survey.Util.SharedPreferenceCustom;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import static com.bumptech.glide.request.Request.*;
public class LoginActivity extends AppCompatActivity {
Button btnLogin;
SharedPreferenceCustom sharedPreferenceCustom;
EditText etUsername,etPassword;
ConnectionClass connectionClass;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
btnLogin = findViewById(R.id.btnLogin);
connectionClass = new ConnectionClass();
progressDialog = new ProgressDialog(this);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doLogin doLogin = new doLogin();
doLogin.execute("");
}
});
/*sharedPreferenceCustom = SharedPreferenceCustom.getInstance(this);
initProgresDialog();
initFindView();*/
}
/*private void initProgresDialog() {
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Please Wait...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(false);
}*/
private class doLogin extends AsyncTask<String, String, String> {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
String z = "";
boolean isSuccess = false;
String un, pw;
@Override
protected void onPreExecute() {
progressDialog.setMessage("Please Wait");
progressDialog.show();
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
if (username.trim().equals("")) {
z = "Masukkan Username Anda!";
} else if (password.trim().equals("")) {
z = "Masukkan Password Anda!";
} else {
try {
ConnectionClass db = new ConnectionClass();
Connection con = db.Conn();
if (con == null) {
z = "Please check your internet connection";
} else {
String query = "select * from userlogin where username = '"+ username +"' and password = '"+ password +"'";
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(query);
while (rs.next()) {
un = rs.getString(1);
pw = rs.getString(2);
if (un.equals(username) && pw.equals(password)) {
isSuccess = true;
z = "Login Successfull";
} else {
isSuccess = false;
}
}
}
} catch (Exception e) {
isSuccess = false;
z = "Exception" + e;
}
}
return z;
}
@Override
protected void onPostExecute(String s) {
Toast.makeText(getBaseContext(), "" + z, Toast.LENGTH_LONG).show();
if (isSuccess) {
Intent intent = new Intent(LoginActivity.this, ProfilDesaActivity.class);
startActivity(intent);
}
progressDialog.hide();
}
}
}
谢谢你
解决方案
推荐阅读
- exchangelib - 使用 exchangelib 时发生错误时清除缓存
- go - CGO:将 Go 字节数组转换为 C char* 并返回,字节数组中出现空终止符
- java - 全屏背景,无论屏幕大小并保持图像纵横比
- excel - Excel - 使用 vlookup 自动更新值
- sql-server - SQL-use FOR XML PATH 用于两个 TABLE
- java - 配置错误时如何立即关闭springboot?
- php - 财务打印机未收到命令
- linux - 如何使用 Nagios Core 监控端口?
- android - 我想在颤振中使用 better_palyer 包自动重复视频
- sql - 如何根据oracle sql中的某些条件删除重复记录?