Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让用户使用java/sqllite登录?_Java_Android_Sqlite - Fatal编程技术网

如何让用户使用java/sqllite登录?

如何让用户使用java/sqllite登录?,java,android,sqlite,Java,Android,Sqlite,我正在使用android studio创建一个应用程序。目前,用户每次重新打开应用程序时都必须重新登录。我怎样才能解决这个问题 导入android.content.ContentValues; 导入android.content.Context; 导入android.database.Cursor; 导入android.database.sqlite.SQLiteDatabase; 导入android.database.sqlite.SQLiteOpenHelper; 公共类DatabaseHe

我正在使用android studio创建一个应用程序。目前,用户每次重新打开应用程序时都必须重新登录。我怎样才能解决这个问题

导入android.content.ContentValues;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteOpenHelper;
公共类DatabaseHelper扩展了SQLiteOpenHelper{
公共数据库助手(上下文){
super(上下文“users.db”,null,1);
}
@凌驾
public void onCreate(SQLiteDatabase db){
execSQL(“创建表用户(用户名文本主键,密码文本)”;
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果存在用户,则删除表”);
onCreate(db);
}
公共布尔插入(字符串用户名、字符串密码){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues ContentValues=新ContentValues();
contentValues.put(“用户名”,用户名);
contentValues.put(“密码”,password);
long ins=db.insert(“用户”,null,contentValues);
如果(ins==-1)返回false;
否则返回true;
}
公共布尔检查\u用户名(字符串用户名){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(“从username=?”的用户中选择*,新字符串[]{username});
if(cursor.getCount()>0)返回false;
否则返回true;
}
公共布尔用户名密码(字符串用户名、字符串密码){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(“从username=?和password=?”的用户中选择*”,新字符串[]{username,password});
if(cursor.getCount()>0)返回true;
否则返回false;
}
}

请注意:这是一个本地服务器,我不能完全确定这是否重要-这只是意味着你不能从其他设备访问一个人的帐户。目前这不是一个问题。

为什么不简单地使用SharedReferences,sqlite对此有点过分,你不这么认为吗?投票关闭的范围太广了,但你可以遵循的一种模式是使用JWT令牌,你的Android应用程序将其存储到共享首选项中。JWT是长寿命会话的一个很好的选择,它可以让用户在每次打开应用程序时不必登录。是的,我知道SharedPrefs,但我将来会使用服务器,所以我想知道现在如何保存东西,所以我不必在将来重新做任何事情。如果你不想使用SharedPref,那么使用Room持久性库而不是原始SQL查询也看看这个问题,你只需要用从用户数据库获取的字符串替换“蛋糕”,用从pw数据库获取的字符串替换“机器人”。