当前位置:   article > 正文

Android sqlite 数据库实现登录注册功能_android利用sqlite实现登录注册界面课程报告

android利用sqlite实现登录注册界面课程报告

一个小小的demo,希望能帮到大家

1.首先创建数据库

DatabaseHelper.java

  1. package com.example.login;
  2. import android.content.ContentValues;
  3. import android.content.Context;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteOpenHelper;
  6. import androidx.annotation.Nullable;
  7. public class DatebaseHelper extends SQLiteOpenHelper {
  8. private static final String DATABASE_NAME = "login.db";
  9. private static final int DATABASE_VERSION = 1;
  10. 、、创建数据库
  11. public DatebaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
  12. super(context, DATABASE_NAME, factory, DATABASE_VERSION);
  13. }
  14. //创建数据库表
  15. @Override
  16. public void onCreate(SQLiteDatabase db) {
  17. db.execSQL("create table username( id varchar(10) primary key AUTOINCREMENT, name varchar(30), password varchar(30))");
  18. }
  19. //添加数据
  20. public void addData(SQLiteDatabase sqLiteDatabase, String name, String password) {
  21. ContentValues values = new ContentValues();
  22. values.put("name", name);
  23. values.put("password", password);
  24. sqLiteDatabase.insert("user", null, values);
  25. }
  26. @Override
  27. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  28. }
  29. }

MainActivity.java

  1. package com.example.login;
  2. import android.annotation.SuppressLint;
  3. import android.content.Intent;
  4. import android.database.Cursor;
  5. import android.database.SQLException;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteException;
  8. import android.os.Bundle;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. import android.widget.Toast;
  13. import androidx.appcompat.app.AlertDialog;
  14. import androidx.appcompat.app.AppCompatActivity;
  15. public class MainActivity extends AppCompatActivity {
  16. private static final String DATABASE_NAME = "login.db";
  17. private static final int DATABASE_VERSION = 1;
  18. private static final String TABLE_NAME = "username";
  19. private SQLiteDatabase db;
  20. private Button btn_l, btn_r;
  21. private EditText nameText, passText;
  22. private Intent intent;
  23. public MainActivity() {
  24. }
  25. @Override
  26. protected void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.activity_main);
  29. DatebaseHelper databaseHelper = new DatebaseHelper(MainActivity.this, DATABASE_NAME, null, DATABASE_VERSION);
  30. db = databaseHelper.getWritableDatabase();
  31. nameText = findViewById(R.id.username);
  32. passText = findViewById(R.id.password);
  33. btn_l = findViewById(R.id.login);
  34. btn_r = findViewById(R.id.register);
  35. btn_r.setOnClickListener(v -> {
  36. intent = new Intent(MainActivity.this, RegisterActivaty.class);
  37. startActivity(intent);
  38. });
  39. btn_l.setOnClickListener(new LoginListener());
  40. }
  41. private class LoginListener implements View.OnClickListener {
  42. @Override
  43. public void onClick(View v) {
  44. String nameString = nameText.getText().toString();
  45. String passString = passText.getText().toString();
  46. if ("".equals(nameString) || "".equals(passString)) {
  47. Toast.makeText(MainActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
  48. } else {
  49. isUserinfo(nameString, passString);
  50. }
  51. }
  52. }
  53. private void isUserinfo(String name, String pass) {
  54. String passString = pass;
  55. try {
  56. @SuppressLint("Recycle") Cursor cursor = db.query(TABLE_NAME, new String[]{"name", "password"}, "name=?", new String[]{name}, null, null, "password");
  57. while (cursor.moveToNext()) {
  58. @SuppressLint("Range") String password = cursor.getString(cursor.getColumnIndex("password"));
  59. cursor.close();
  60. if (passString.equals(password)) {
  61. new AlertDialog.Builder(MainActivity.this).setTitle("正确")
  62. .setMessage("成功登录").setPositiveButton("确定", (dialog, which) -> {
  63. // TODO Auto-generated method stub
  64. Intent a = new Intent(MainActivity.this, MainActivity.class);
  65. startActivity(a);
  66. }).show();
  67. break;
  68. } else {
  69. Toast.makeText(this, "用户名密码不正确", Toast.LENGTH_LONG).show();
  70. break;
  71. }
  72. }
  73. } catch (SQLiteException e) {
  74. CreatTable();
  75. }
  76. }
  77. private void CreatTable() {
  78. String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
  79. + " (name varchar(30) primary key,password varchar(30));";
  80. try {
  81. db.execSQL(sql);
  82. } catch (SQLException ignored) {
  83. }
  84. }
  85. }

注册实现 RegisterActivity.java

  1. package com.example.login;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.database.Cursor;
  5. import android.database.sqlite.SQLiteDatabase;
  6. import android.os.Bundle;
  7. import android.text.TextUtils;
  8. import android.view.Window;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.Toast;
  12. /**
  13. * @author ts
  14. */
  15. public class RegisterActivaty extends Activity {
  16. private EditText edittext1, edittext2, edittext3;
  17. private DatebaseHelper databaseHelper;
  18. private static final String DATABASE_NAME = "login.db";
  19. private static final int DATABASE_VERSION = 1;
  20. private SQLiteDatabase db;
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  25. setContentView(R.layout.activity_register);
  26. databaseHelper = new DatebaseHelper(RegisterActivaty.this, DATABASE_NAME, null, DATABASE_VERSION);
  27. db = databaseHelper.getReadableDatabase();
  28. edittext1 = findViewById(R.id.username);
  29. edittext2 = findViewById(R.id.editview2);
  30. edittext3 = findViewById(R.id.password);
  31. Button button = findViewById(R.id.tijiao);
  32. button.setOnClickListener(v -> {
  33. String namestring = edittext1.getText().toString();
  34. String passstring = edittext2.getText().toString();
  35. String repassstring = edittext3.getText().toString();
  36. submit(namestring, passstring, repassstring);
  37. });
  38. }
  39. //判空
  40. private void submit(String namestring, String passstring, String repassstring) {
  41. if (TextUtils.isEmpty(namestring)) {
  42. Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show();
  43. return;
  44. }
  45. if (TextUtils.isEmpty(passstring)) {
  46. Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show();
  47. return;
  48. }
  49. if (TextUtils.isEmpty(repassstring)) {
  50. Toast.makeText(this, "确认密码不能为空", Toast.LENGTH_SHORT).show();
  51. return;
  52. }
  53. if (!notexistSameName(namestring)) {
  54. Toast.makeText(this, "用户名已存在", Toast.LENGTH_SHORT).show();
  55. } else if (passstring.equals(repassstring)) {
  56. db.execSQL("insert into username (name,password) values(?,?)", new String[]{namestring, passstring});
  57. Toast.makeText(RegisterActivaty.this, "注册成功!", Toast.LENGTH_LONG).show();
  58. Intent b = new Intent(RegisterActivaty.this, MainActivity.class);
  59. startActivity(b);
  60. } else {
  61. Toast.makeText(RegisterActivaty.this, "两次密码不一致", Toast.LENGTH_LONG).show();
  62. }
  63. }
  64. //通过查询数据库判断用户名是否存在
  65. private boolean notexistSameName(String name) {
  66. Cursor cursor = db.query("username", new String[]{"name"}, "name = ?", new String[]{name}, null, null, null);
  67. if (cursor.getCount() == 0) {
  68. cursor.close();
  69. return true;
  70. } else {
  71. cursor.close();
  72. return false;
  73. }
  74. }
  75. }

效果图

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号