0
私はログインアクティビティを使用してログインとパスワードのトークンをSQLiteデータベースに挿入できますが、パスワードを変更できるconfigという別のアクティビティを作っています。だから私はこの方法を作ったが、私は自分の設定作業でどのように使用するのか分からない。他のアクティビティからアンドロイドスタジオのパスワードを更新します
public class DatabaseHelper extends SQLiteOpenHelper {
//Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "UserManager.db";
// User table name
private static final String TABLE_USER = "user";
// User Table Columns names
private static final String COLUMN_USER_ID = "user_id";
private static final String COLUMN_USER_NAME = "user_name";
private static final String COLUMN_USER_EMAIL = "user_email";
private static final String COLUMN_USER_PASSWORD = "user_password";
// create table sql query
private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "("
+ COLUMN_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_USER_NAME + " TEXT,"
+ COLUMN_USER_EMAIL + " TEXT," + COLUMN_USER_PASSWORD + " TEXT" + ")";
// drop table sql query
private String DROP_USER_TABLE = "DROP TABLE IF EXISTS " + TABLE_USER;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USER_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Drop User Table if exist
db.execSQL(DROP_USER_TABLE);
// Create tables again
onCreate(db);
}
public void update_user (String old_PASS , String new_PASS)
{
this.getWritableDatabase().execSQL("UPDATE TABLE_USER SET COLUMN_USER_PASSWORD='"+new_PASS+ "' WHERE COLUMN_USER_PASSWORD= '"+old_PASS+"'");
}
更新クエリに問題があります。まず、準備されたステートメントを使用する必要があります。それ以外の場合、 'WHERE'節はユーザー名またはユーザーIDをチェックし、前のパスワードはチェックしません。今、同じ古いパスワードを持つすべてのレコードを更新します。 –
public void update_user(String old_email、String new_PASS) { this.getWritableDatabase()。execSQL( "UPDATE TABLE_USER SET COLUMN_USER_PASSWORD = '" + new_PASS + "' WHERE COLUMN_USER_Email = '" + old_email + "'"); }これはどういう意味ですか? – imen