Android 在SQLite中验证用户名和密码
我正在Android Studio中创建一个连接到SQLite的登录名。如果用户名和密码正确(当然都存储在数据库中),我想继续我的第二个活动。用户可以从我的管理页面添加,这很好。如何检查用户名和密码是否存储在数据库中 这是到目前为止我的代码:Android 在SQLite中验证用户名和密码,android,android-sqlite,Android,Android Sqlite,我正在Android Studio中创建一个连接到SQLite的登录名。如果用户名和密码正确(当然都存储在数据库中),我想继续我的第二个活动。用户可以从我的管理页面添加,这很好。如何检查用户名和密码是否存储在数据库中 这是到目前为止我的代码: package com.example.schoolapp; import android.content.Intent; import android.se.omapi.Session; import android.support.v7.app.Ap
package com.example.schoolapp;
import android.content.Intent;
import android.se.omapi.Session;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.schoolapp.Admin.DBHelper;
import com.example.schoolapp.Admin.ThirdActivity;
import com.example.schoolapp.Eleve.SecondActivity;
public class MainActivity extends AppCompatActivity {
DBHelper SchoolAppDB;
//Initialisation des variables
private EditText Name;
private EditText Password;
private Button Login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Mise en relation des variables a leurs correspondants dans le fichier XML par leur ID
Name = (EditText) findViewById(R.id.etNewName);
Password = (EditText) findViewById(R.id.etPassword);
Login = (Button) findViewById(R.id.btnLogin);
Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//getting Edit Text values and stores it into string
String username = Name.getText().toString();
String password = Password.getText().toString();
//check authorized user or not
if (SchoolAppDB.checkUser(username, password)) {
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), "Login Successfull", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Wrong Username or Password", Toast.LENGTH_LONG).show();
}
}
});
}
}
主要活动:
package com.example.schoolapp;
import android.content.Intent;
import android.se.omapi.Session;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.schoolapp.Admin.DBHelper;
import com.example.schoolapp.Admin.ThirdActivity;
import com.example.schoolapp.Eleve.SecondActivity;
public class MainActivity extends AppCompatActivity {
DBHelper SchoolAppDB;
//Initialisation des variables
private EditText Name;
private EditText Password;
private Button Login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Mise en relation des variables a leurs correspondants dans le fichier XML par leur ID
Name = (EditText) findViewById(R.id.etNewName);
Password = (EditText) findViewById(R.id.etPassword);
Login = (Button) findViewById(R.id.btnLogin);
Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//getting Edit Text values and stores it into string
String username = Name.getText().toString();
String password = Password.getText().toString();
//check authorized user or not
if (SchoolAppDB.checkUser(username, password)) {
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), "Login Successfull", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Wrong Username or Password", Toast.LENGTH_LONG).show();
}
}
});
}
}
DBHelper checkUserLogin方法:
public boolean checkUserLogin(String username,String password){
SQLiteDatabase db=this.getWritableDatabase();
String Query = "select USER_NAME, USER_PASSWORD from USER where USER_NAME='"+ username +"' and USER_PASSWORD='"+ password+"'";
Cursor cursor = null;
try {
cursor = db.rawQuery(Query, null);//raw query always holds rawQuery(String Query,select args)
} catch (Exception e) {
e.printStackTrace();
}
if(cursor!=null && cursor.getCount()>0){
cursor.close();
return true;
}
else{
cursor.close();
return false;
}
}
您可能会遇到空指针异常,因为您似乎没有实例化SchoolAppDB 我建议改变:-
setContentView(R.layout.activity_main);
将是:-
setContentView(R.layout.activity_main);
SchoolAppDB = new DBHelper(this); //<<<<<<<<<< assuming the DBHelper constructor only requires the Context.
问题是什么?我感觉这里有些明文存储密码。虽然这可能是你为了娱乐或训练而制作的应用程序,但如果你计划部署你的应用程序,请不要忘记加密这些应用程序。@forpas I my bad。我刚刚更新了帖子。@Arthuratot但这是大学的项目。
checkUserLogin()
?