安卓持久化技术2—SQLite数据库存储_实现登录注册功能

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文件,就可以看到自己注册时添加的信息了

在这里插入图片描述

发布了46 篇原创文章 · 获赞 12 · 访问量 1591

猜你喜欢

转载自blog.csdn.net/weixin_43605701/article/details/103092319