SQLite数据库存储_实现登录注册功能
注册活动代码
public class RegisterActivity extends AppCompatActivity {
MyDatabaseHelper myDatabaseHelper;
EditText editText_name;
EditText editText_password;
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
cursor.close();//关闭
}
public void btn_register(View v) {
myDatabaseHelper= new MyDatabaseHelper(this,"users",null,1);
SQLiteDatabase dbWrite = myDatabaseHelper.getWritableDatabase();
SQLiteDatabase dbRead = myDatabaseHelper.getReadableDatabase();
// ContentValues values= new ContentValues();
editText_name = findViewById(R.id.edit_name);
editText_password = findViewById(R.id.edit_password);
String name = editText_name.getText().toString();
String password = Hashcode.hashCode(editText_password.getText().toString());
Log.d("即将进入数据库", "btn_register: ");
if (name.equals("") || password.equals("")) {
Toast.makeText(RegisterActivity.this, "用户名或密码为空", Toast.LENGTH_LONG).show();
} else {
//查询用户表中的所有数据
cursor = dbRead.rawQuery("select name from users", null);
if (cursor.moveToFirst()) {
do {
String name1 = cursor.getString(cursor.getColumnIndex("name"));
if (name1.equals(name)) {
Toast.makeText(RegisterActivity.this, "用户名已存在", Toast.LENGTH_LONG).show();
return;
}
} while (cursor.moveToNext());
}
dbWrite.execSQL("insert into users(name,password) values (?,?)", new String[]{name, password});
//插入,删除,查询等等,查询比较特殊
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_LONG).show();
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
}
}
}
登录活动代码
public class LoginActivity extends AppCompatActivity {
MyDatabaseHelper myDatabaseHelper;
EditText editText_name;
EditText editText_password;
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
}
public void textviewClick(View v){
Intent intent = new Intent(LoginActivity.this,RegisterActivity.class);
startActivity(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
cursor.close();
}
public void btn_login(View v) {
myDatabaseHelper= new MyDatabaseHelper(this,"users",null,1);
SQLiteDatabase dbRead = myDatabaseHelper.getReadableDatabase();
// ContentValues values= new ContentValues();
editText_name = findViewById(R.id.edit_name);
editText_password = findViewById(R.id.edit_password);
String name = editText_name.getText().toString();
String password = Hashcode.hashCode(editText_password.getText().toString());
if (name.equals("") || password.equals("")) {
Toast.makeText(LoginActivity.this, "用户名或密码为空", Toast.LENGTH_LONG).show();
} else {
//查询用户表中的所有数据
cursor = dbRead.rawQuery("select * from users", null);
if (cursor.moveToFirst()) {
do {
String name1 = cursor.getString(cursor.getColumnIndex("name"));
String password1 = cursor.getString(cursor.getColumnIndex("password"));
if (name.equals(name1) && password.equals(password1))
// db.execSQL("insert into users(name,password) values (?,?)",new String[]{name,password});
{
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_LONG).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
return;
}
} while (cursor.moveToNext());
Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_LONG).show();
editText_name.setText("");
editText_password.setText("");
return;
}
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
}
}
}
**可以直接用sql来操作数据库**
SQLiteOpenHelper帮助类
package com.example.youthgo;
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_USERS="create table users(name varchar(20),password varchar(20))";
//创建数据库表
private Context mContent;
public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mContent=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USERS);
//执行sql语句相应的操作
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
可以下载刚刚注册新建的db文件(文件位置上篇文件存储有讲)
然后用SQLiteSpy可以打开db文件,就可以看到自己注册时添加的信息了