繁体   English   中英

ANDROID:mysql JDBC中的用户登录验证

[英]ANDROID: User Login Authentication in mysql JDBC

我真的需要在Android中使用MySql数据库中的JDBC库进行用户身份验证方面的帮助。 我的数据库完全正常工作,但我不知道如何在我的登录活动中提供Authenticaion。

这是我的DBHelper类。

 public boolean loginUser(String userName, String password) {
    boolean result = false;
    ResultSet rSet;

    try {
        PreparedStatement st = conn.prepareStatement(("SELECT username, password, member_tbl where user_name=? and password=?"));
        st.setString(1, userName);
        st.setString(2, password);

        rSet = st.executeQuery();
        result= rSet.next();

        if (result == true) {
            if (rSet.getInt("username") > 0) {
                st.close();
            }
        }

    } catch (SQLException e) {
        Log.e(TAG, e.getMessage());
    }

    return result;
}

登录活动CLass。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    btnLogin= (Button) findViewById(R.id.buttonLogin);
    editextUserName= (EditText) findViewById(R.id.editTextUserName);
    editextPassword= (EditText) findViewById(R.id.editTextPassword);

    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (editextUserName.getText().toString().isEmpty() || editextPassword.getText().toString().isEmpty()){
                Toast.makeText(getApplicationContext(),"Please fill out needed details.",Toast.LENGTH_LONG).show();
            }else {
                new loginUser().execute();
            }
        }
    });
}

private class loginUser extends AsyncTask<Void, Void, Void> {
    ProgressDialog dialog;
    private boolean result;

    @Override
    protected void onPreExecute() {

        uName= editextUserName.getText().toString();
        pWord= editextPassword.getText().toString();

        dialog= new ProgressDialog(LoginActivity.this);
        dialog.setCancelable(false);
        dialog.setMessage("Logging in..");
        showDialog();
        result=false;
    }

    @Override
    protected Void doInBackground(Void... params) {
        DBHelper db= new DBHelper();
        result= db.loginUser(uName,pWord);
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        hideDialog();
        if (result == false) {
            toastUserLogin(uName);
        }else {
            Toast.makeText(getApplicationContext(),"An error occured.",Toast.LENGTH_LONG).show();
        }
    }

    private void showDialog() {
        if (!dialog.isShowing()) {
            dialog.show();
        }
    }

    private void hideDialog() {
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    }
}

private void toastUserLogin(String userName) {
    Toast.makeText(LoginActivity.this,"Welcome authenticated user "+ userName+ " !",Toast.LENGTH_LONG).show();
}

任何帮助将不胜感激。 :)

改变onPostExecute方法......

  if (result == true) {
        toastUserLogin(uName);
    }else {
        Toast.makeText(getApplicationContext(),"An error occured.",Toast.LENGTH_LONG).show();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM