使用SQLite本地数据库实现注册登陆功能

共3个页面:注册,确认,登陆。
注册有两种可能。1.用户名已存在,提示更改用户名(select语句) 2.注册成功(insert语句)
登陆有两种可能。(select语句)1.用户名和密码不匹配 2.登陆成功
操作步骤:

一、数据库的准备工作MyDatabaseHelper.java

public class MyDatabaseHelper extends SQLiteOpenHelper {
    final String CREATE_TABLE_SQL = "create table userlist(_id integer primary key autoincrement,name,passwd,gender)";

    public MyDatabaseHelper(Context context, String name, int version) {
        super(context, name, null, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_SQL);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}

}

android自带的数据库SQLite有两个非常重要的类。SQLiteOpenHelper,SQLiteDatabase。
在这段代码,新建一个数据库,在数据库里新建一个表。

二、在用到数据库的每一个.java中,先写两句话

MyDatabaseHelper dbHelper = new MyDatabaseHelper(register_index.this, "userlist.db", 1);
                SQLiteDatabase db = dbHelper.getReadableDatabase();

三、select语句和insert语句

select语句

 String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
 Cursor cursor = db.rawQuery(sql, null);
 if (!cursor.moveToNext()){}
 else{}

Name和Passwd是String类型,注意这里必须写成”+Name+”

insert语句

insertData(db, Name, Passwd, Gender);
private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {
db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});
    }

写一个函数insertData。

四、还有2个补充。

第1,带数据的跳转。

发送

                    Intent intent = new Intent(register_index.this, result.class);
                    Bundle data = new Bundle();
                    data.putString("name", Name);
                    data.putString("passwd", Passwd);
                    data.putString("gender", Gender);
                    intent.putExtras(data);
                    startActivity(intent);

分3步。1.new Bundle 2.放入数据putXXX 3.把bundle绑在intent上(putExtras)

接收

                Bundle data = getIntent().getExtras();
                String Name = data.getString("name");
                String Passwd = data.getString("passwd");
                String Gender = data.getString("gender");

分2步。1.得到intent,然后得到intent里的bundle。2.得到bundle里的数据(getXXX)。

第2,调试经常用到Toast

Toast.makeText(register_index.this, "用户名已存在,请更改用户名!", Toast.LENGTH_SHORT).show();

附录:
register.java

public class login extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        findViews();
        setListeners();
    }

    private EditText name;
    private EditText passwd;
    private Button login;
    private Button register;

    private void findViews() {
        name = (EditText) findViewById(R.id.name);
        passwd = (EditText) findViewById(R.id.passwd);
        login = (Button) findViewById(R.id.login);
        register = (Button) findViewById(R.id.register);
    }

    private void setListeners() {
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String Name = name.getText().toString().trim();
                String Passwd = passwd.getText().toString().trim();
                MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);
                SQLiteDatabase db = dbHelper.getReadableDatabase();
                String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
                Cursor cursor = db.rawQuery(sql, null);
                if (!cursor.moveToNext())
                    Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();

            }
        });
        register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(login.this, register_index.class);
                startActivity(intent);
            }
        });
    }
}

result.java

public class result extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        findViews();
        showResults();
        setListeners();
    }

    private TextView name;
    private TextView passwd;
    private TextView gender;
    private Button insert;

    private void findViews() {
        name = (TextView) findViewById(R.id.name);
        passwd = (TextView) findViewById(R.id.passwd);
        gender = (TextView) findViewById(R.id.gender);
        insert = (Button) findViewById(R.id.insert);

    }

    private void showResults() {
        Bundle data = getIntent().getExtras();
        name.setText("您的用户名为:" + data.getString("name"));
        passwd.setText("您的密码为:" + data.getString("passwd"));
        gender.setText("您的性别为:" + data.getString("gender"));
    }

    private void setListeners() {
        insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                MyDatabaseHelper dbHelper = new MyDatabaseHelper(result.this, "userlist.db", 1);
                SQLiteDatabase db = dbHelper.getWritableDatabase();
                Bundle data = getIntent().getExtras();
                String Name = data.getString("name");
                String Passwd = data.getString("passwd");
                String Gender = data.getString("gender");
                insertData(db, Name, Passwd, Gender);
                Toast.makeText(result.this, "注册成功!", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(result.this, login.class);
                startActivity(intent);
            }
        });
    }

    private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {
        db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});
    }
}

login.java

public class login extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        findViews();
        setListeners();
    }

    private EditText name;
    private EditText passwd;
    private Button login;
    private Button register;

    private void findViews() {
        name = (EditText) findViewById(R.id.name);
        passwd = (EditText) findViewById(R.id.passwd);
        login = (Button) findViewById(R.id.login);
        register = (Button) findViewById(R.id.register);
    }

    private void setListeners() {
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String Name = name.getText().toString().trim();
                String Passwd = passwd.getText().toString().trim();
                MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);
                SQLiteDatabase db = dbHelper.getReadableDatabase();
                String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
                Cursor cursor = db.rawQuery(sql, null);
                if (!cursor.moveToNext())
                    Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();

            }
        });
        register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(login.this, register_index.class);
                startActivity(intent);
            }
        });
    }
}
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Android应用中实现登录注册功能并与数据库交互,可以按照以下步骤进行操作: 1. 首先,确保你已经设置好了数据库。你可以使用SQLite作为Android应用的本地数据库,或者使用远程数据库,如MySQL或Firebase等。 2. 在你的Android项目中创建一个数据库帮助类(DatabaseHelper),该类继承自SQLiteOpenHelper。在该类中,你可以创建数据库表、定义表结构和提供数据库操作方法。 3. 在登录注册的Activity中,你需要创建布局文件(XML)来设计登录注册页面的界面。布局文件可以包含输入框、按钮等用于用户输入和操作的UI元素。 4. 在Activity中,你需要获取用户在登录注册页面中输入的数据,并将其传递给数据库操作方法。你可以使用EditText控件来获取用户输入的数据。 5. 在数据库帮助类中,定义插入用户信息的方法(如registerUser),用于将用户的注册信息插入到数据库表中。你可以使用SQL语句或使用Android提供的数据库API进行操作。 6. 在登录页面中,你需要获取用户输入的用户名和密码,并与数据库中的数据进行比较。你可以使用查询数据的方法(如getUser)来检查用户输入的用户名和密码是否匹配。 7. 根据登录注册的结果,你可以显示适当的提示信息给用户,如登录成功或登录失败。 总结:实现Android登录注册页面与数据库交互的关键是创建数据库帮助类、定义数据库操作方法,并在登录注册的Activity中调用这些方法来实现数据的插入、查询和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值