安全知识普及系统6
在使用sqlite之后,终于成功完成了数据的增删改查功能,于是实现了登录的逻辑以及修改密码、注册的功能
public class EnrollActivity extends AppCompatActivity { Dao dao = new Dao(EnrollActivity.this); private EditText mPhoneNum; private EditText mPsw1; private EditText mPsw2; private EditText mUserName; private Button mEnrollButton; private String phonenum; private String psw1; private String psw2; private String username; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_enroll); mPhoneNum = (EditText) findViewById(R.id.phonenum); mPsw1 = (EditText) findViewById(R.id.pwd1); mPsw2 = (EditText) findViewById(R.id.pwd2); mUserName = (EditText) findViewById(R.id.username); mEnrollButton = (Button) findViewById(R.id.enroll); mEnrollButton.setOnClickListener(view -> { phonenum = mPhoneNum.getText().toString().trim(); psw1 = mPsw1.getText().toString().trim(); psw2 = mPsw2.getText().toString().trim(); username = mUserName.getText().toString().trim(); if (dao.queryy(phonenum)){ String info = "该手机号已被注册"; Toast.makeText(EnrollActivity.this, info, Toast.LENGTH_SHORT).show(); }else{ if (psw1.equals(psw2)){ Log.i("EnrollActivity.",psw1+"确认:"+psw2); dao.add(phonenum,psw1,username); String info = "注册成功,返回登录界面"; Toast.makeText(EnrollActivity.this, info, Toast.LENGTH_LONG).show(); Intent intent = new Intent(EnrollActivity.this,LoginActivity.class); startActivity(intent); } if (psw1 != psw2){ String info = "两次输入密码不一致"; Toast.makeText(EnrollActivity.this, info, Toast.LENGTH_LONG).show(); } } }); } }
public class LoginActivity extends AppCompatActivity { private EditText mphonenum; private EditText mPassword; private Button mButtonLogin; private Button mButtonEnroll; private Button mButtonUpdate; private String phonenum; private String password; //检验用户是否存在 private String checkAccount(String phonenum, String userPasswd){ String loginInfo = ""; Dao dao = new Dao(LoginActivity.this); Log.i("LoginActivity",phonenum+" 密码"+userPasswd); String getpsw = dao.queryuserbyphone(phonenum); if (getpsw != null){ if (getpsw.equals(userPasswd)){ loginInfo = "登录成功"; Toast.makeText(LoginActivity.this, loginInfo, Toast.LENGTH_SHORT).show(); }else{ loginInfo = "密码错误"; Toast.makeText(LoginActivity.this, loginInfo, Toast.LENGTH_SHORT).show(); mPassword.requestFocus(); } }else { loginInfo = "用户不存在"; Toast.makeText(LoginActivity.this, loginInfo, Toast.LENGTH_SHORT).show(); mphonenum.requestFocus(); } return loginInfo; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); mphonenum = (EditText) findViewById(R.id.phonenumlogin); mPassword = (EditText) findViewById(R.id.password); mButtonLogin = findViewById(R.id.denglu); mButtonEnroll = findViewById(R.id.enroll); mButtonUpdate = findViewById(R.id.update); mButtonLogin.setOnClickListener(v->{ phonenum = mphonenum.getText().toString().trim(); password = mPassword.getText().toString().trim(); String info = checkAccount(phonenum,password); if (info.equals("登录成功")){ Toast.makeText(LoginActivity.this, info, Toast.LENGTH_SHORT).show(); Intent intent = new Intent(LoginActivity.this,MainPageActivity.class); startActivity(intent); } }); mButtonEnroll.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { //跳转到注册界面 Intent intent = new Intent(LoginActivity.this,EnrollActivity.class); startActivity(intent); } }); mButtonUpdate.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { //跳转到修改密码界面 Intent intent = new Intent(LoginActivity.this,UpdateActivity.class); startActivity(intent); } }); } }
public class UpdateActivity extends AppCompatActivity { private Context context; Dao dao = new Dao(UpdateActivity.this); private EditText mphonenum; private EditText moldpsw; private EditText mpsw1; private EditText mpsw2; private Button mButton; private String phonenum; private String oldpsw; private String psw1; private String psw2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_update); mphonenum = (EditText) findViewById(R.id.phonenumupdate); moldpsw = (EditText) findViewById(R.id.oldpsw); mpsw1 = (EditText) findViewById(R.id.UDpsw1); mpsw2 = (EditText) findViewById(R.id.UDpsw2); mButton = (Button) findViewById(R.id.updatebutton); mButton.setOnClickListener(view -> { phonenum = mphonenum.getText().toString().trim(); oldpsw = moldpsw.getText().toString().trim(); psw1 = mpsw1.getText().toString().trim(); psw2 = mpsw2.getText().toString().trim(); String getpsw = dao.queryuserbyphone(phonenum); Log.i("UpdateActivity",getpsw); if (oldpsw.equals(getpsw)){ if (psw1.equals(psw2)){ if (dao.updatepsw(phonenum,psw1)){ String info = "修改成功,返回登录界面"; Toast.makeText(UpdateActivity.this, info, Toast.LENGTH_SHORT).show(); Intent intent = new Intent(UpdateActivity.this,LoginActivity.class); startActivity(intent); }else { String info = "修改失败"; Toast.makeText(UpdateActivity.this, info, Toast.LENGTH_LONG).show(); } }else{ String info = "两次输入密码不一致"; Toast.makeText(UpdateActivity.this, info, Toast.LENGTH_LONG).show(); } }else{ String info = "账号或密码错误"; Toast.makeText(UpdateActivity.this, info, Toast.LENGTH_LONG).show(); Log.i("UpdateActivity","原密码"+getpsw+" 新密码"+psw1); } }); } }
public class Dao { private SQLiteDatabase db; private DBOpenHelper helper; public Dao(Context context) { helper = new DBOpenHelper(context, "newdata.db", null, 2); } public void add() { db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("username", "test"); values.put("password", "123456"); values.put("age", 21); //数据库执行插入命令 long rowid = db.insert("usersad", null, values); Log.i("myDbDemo", String.valueOf(rowid)); if (rowid == -1) Log.i("myDbDemo", "数据插入失败!"); else Log.i("myDbDemo", "数据插入成功!" + rowid); } public void add(String phonenum, String password, String username) { int pn = Integer.parseInt(phonenum); db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("username", username); values.put("password", password); values.put("age", pn); long rowid = db.insert("usersad", null, values); if (rowid == -1) Log.i("myDbDemo", "数据插入失败!"); else Log.i("myDbDemo", "数据插入成功!" + rowid); } public void delete() { db = helper.getWritableDatabase(); db.delete("usersad", "username=?", new String[]{"test"}); } public void updateaaa() { db = helper.getWritableDatabase(); ContentValues values2 = new ContentValues(); values2.put("username", "admin123"); db.update("usersad", values2, "username=?", new String[]{"admin"}); } public void qu() { db = helper.getWritableDatabase(); //创建游标对象 Cursor cursor = db.query("usersad",null,null,null,null,null,null); //利用游标遍历所有数据对象 while (cursor.moveToNext()) { @SuppressLint("Range") String id = cursor.getString(cursor.getColumnIndex("id")); @SuppressLint("Range") String username = cursor.getString(cursor.getColumnIndex("username")); @SuppressLint("Range") int age = cursor.getInt(cursor.getColumnIndex("age")); Log.i("Mainactivity", "result: id=" + id + " username: " + username + " age:" + age); } // 关闭游标,释放资源 cursor.close(); } public boolean queryy(String phonenum) { db = helper.getWritableDatabase(); //创建游标对象 Cursor cursor = db.query("usersad", new String[]{"id", "username", "age"}, "username=?or age =?", new String[]{"test", "20"}, null, null, null); //利用游标遍历所有数据对象 while (cursor.moveToNext()) { @SuppressLint("Range") String id = cursor.getString(cursor.getColumnIndex("id")); @SuppressLint("Range") String username = cursor.getString(cursor.getColumnIndex("username")); @SuppressLint("Range") int age = cursor.getInt(cursor.getColumnIndex("age")); Log.i("Mainactivity", "result: id=" + id + " username: " + username + " age:" + age); int in = Integer.parseInt(phonenum); if (age == in){ return true; } } // 关闭游标,释放资源 cursor.close(); return false; } public String queryuserbyphone(String phonenum) { db = helper.getWritableDatabase(); //创建游标对象 Cursor cursor = db.query("usersad", new String[]{"password"}, " age=?", new String[]{phonenum}, null, null, null); //利用游标遍历所有数据对象 while (cursor.moveToNext()) { @SuppressLint("Range") String password = cursor.getString(cursor.getColumnIndex("password")); Log.i("Dao", "result: password=" + password); int in = Integer.parseInt(phonenum); return password; } // 关闭游标,释放资源 cursor.close(); return null; } public boolean updatepsw(String phonenum,String psw) { db = helper.getWritableDatabase(); ContentValues values2 = new ContentValues(); values2.put("password", psw); Log.i("Dao",psw+" 账号:"+ new String[]{phonenum}); db.update("usersad", values2, "age=?", new String[]{phonenum}); return true; } public String queryusernamebyphone(String phonenum) { db = helper.getWritableDatabase(); //创建游标对象 Cursor cursor = db.query("usersad", new String[]{"username"}, " age=?", new String[]{phonenum}, null, null, null); //利用游标遍历所有数据对象 while (cursor.moveToNext()) { @SuppressLint("Range") String username = cursor.getString(cursor.getColumnIndex("username")); Log.i("Dao", "result: username=" + username); int in = Integer.parseInt(phonenum); return username; } // 关闭游标,释放资源 cursor.close(); return null; } }
public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { //创建数据库sql语句并执行 String sql="create table usersad(id integer primary key autoincrement,username varchar(20),password varchar(20),age integer)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i("DBOpenHelper","升级数据库"); String sql = "alter table usersad add sex varchar(10)"; } }
public class MainActivity extends AppCompatActivity { private Button mLoginactivity; private Button mBtnButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mLoginactivity = findViewById(R.id.btn_login); mBtnButton = findViewById(R.id.btn_ceshi); mLoginactivity.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { //跳转到登陆界面演示页面 Intent intent = new Intent(MainActivity.this, LoginActivity.class); startActivity(intent); } }); mBtnButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, TestActivity.class); startActivity(intent); } }); } }
                    
                
                
            
        
浙公网安备 33010602011771号