利用SQLite数据库进行用户名、密码的注册和登录验证

您所在的位置:网站首页 linux如何查看用户和密码是否正确 利用SQLite数据库进行用户名、密码的注册和登录验证

利用SQLite数据库进行用户名、密码的注册和登录验证

2024-02-19 13:21| 来源: 网络整理| 查看: 265

利用SQLite数据库进行存储用户名、密码等等其他信息

首先是activity_main布局界面

底下的两个按钮,“注册”是跳转到注册用户名和密码界面;“随便看看”是跳过注册登录页面,直接进入到主程序,方便路人进行浏览操作。

接下来是注册页面的布局zhuce.xml

其中电子邮箱的验证功能没有做,大家可以跳过这一步的填写注册

下面是MainActivity.class

package com.example.android_login; import android.os.Bundle; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.app.AlertDialog; public class MainActivity extends Activity { private TextView textview; //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; //表名 private static final String TABLE_NAME="username"; private DatebaseHelper databaseHelper; private SQLiteDatabase db; private Button button1; private EditText nameText,passText; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); nameText=(EditText)findViewById(R.id.username); passText=(EditText)findViewById(R.id.pasw); button1=(Button)findViewById(R.id.tijiao); textview=(TextView)findViewById(R.id.zhuce); textview.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub intent=new Intent(MainActivity.this,zhuce.class); startActivity(intent); } }); //启动注册页面 TextView textview=(TextView)findViewById(R.id.zhuce); textview.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,zhuce.class); startActivity(a); } }); //启动随便看看页面 TextView textview1=(TextView)findViewById(R.id.suibian); textview1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,Main.class); startActivity(a); } }); button1.setOnClickListener(new LoginListener()); } class LoginListener implements OnClickListener{ public void onClick(View v){ String nameString =nameText.getText().toString(); String passString=passText.getText().toString(); if(nameString.equals("")||passString.equals("")) { //弹出消息框 new AlertDialog.Builder(MainActivity.this).setTitle("错误") .setMessage("帐号或密码不能空").setPositiveButton("确定", null) .show(); }else{ isUserinfo(nameString,passString); } } } public Boolean isUserinfo(String name,String pass) { String nameString=name; String passString=pass; databaseHelper=new DatebaseHelper(MainActivity.this,DATABASE_NAME,null,DATABASE_VERSION); db = databaseHelper.getReadableDatabase(); try{ Cursor cursor=db.query(TABLE_NAME, new String[]{"name","password"},"name=?",new String[]{nameString},null,null,"password"); while(cursor.moveToNext()) { String password=cursor.getString(cursor.getColumnIndex("password")); if(passString.equals(password)) { new AlertDialog.Builder(MainActivity.this).setTitle("正确") .setMessage("成功登录").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Intent a=new Intent(MainActivity.this,Main.class); startActivity(a); } }).show(); break; } else { Toast.makeText(this, "用户名密码不正确",Toast.LENGTH_LONG).show(); break; } } }catch(SQLiteException e){ CreatTable(); } return false; } private void CreatTable() { // TODO Auto-generated method stub String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (name varchar(30) primary key,password varchar(30));"; try{ db.execSQL(sql); }catch(SQLException ex){} } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 当然了,若想用到SQLite数据库,就必须创建一个子类DatebaseHelper.java

package com.example.android_login; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DatebaseHelper extends SQLiteOpenHelper { //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; //数据库SQL语句 添加一个表 public DatebaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, DATABASE_NAME, factory, DATABASE_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table username( name varchar(30) primary key,password varchar(30))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } 注册页的zhuce.java

package com.example.android_login; import android.app.Activity; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class zhuce extends Activity { private EditText edittext1,edittext2,edittext3; private Button button; private DatebaseHelper databaseHelper; //数据库名称 private static final String DATABASE_NAME="yufengtest.db"; //数据库版本号 private static final int DATABASE_VERSION=1; private static final String TABLE_NAME="username"; private SQLiteDatabase db; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.zhuce); edittext1=(EditText)findViewById(R.id.editview1); edittext2=(EditText)findViewById(R.id.editview2); edittext3=(EditText)findViewById(R.id.editview3); button=(Button)findViewById(R.id.tijiao); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String namestring = edittext1.getText().toString(); String passstring = edittext2.getText().toString(); String repassstring=edittext3.getText().toString(); if(passstring.equals(repassstring)) { databaseHelper=new DatebaseHelper(zhuce.this,DATABASE_NAME,null,DATABASE_VERSION); db = databaseHelper.getReadableDatabase(); db.execSQL("insert into username (name,password) values(?,?)",new String[]{namestring,passstring}); Toast.makeText(zhuce.this, "注册成功!", Toast.LENGTH_LONG).show(); Intent b=new Intent(zhuce.this,MainActivity.class); startActivity(b); } else { Toast.makeText(zhuce.this,"两次密码不一致", Toast.LENGTH_LONG).show(); } } }); } }

点击dialog对话框中的“确定”按钮,会跳转到程序的主界面去,相当于直接点击“随便看看”按钮,大家可以自己编写后面的程序



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3