(数据库)Android登录,注册界面简单实现。

本文使旨在用最简单的Demo来实现原理,有不足之处欢迎指出,多多包涵,大家一起交流~

 

1、一般兄弟们看这篇文章应该对数据库多少有些了解,简洁说SQL是Structured Query Language结构化查询语言的缩写。SQL是专为数据库而建立的操作命令集。数据库简单的说就是实行增,删,改,查的方法。

      今天我用数据库写了一个登录注册界面,仿的是ONE的登录界面

 

登录界面:

   (数据库)Android登录,注册界面简单实现。_第1张图片

注册界面:

(数据库)Android登录,注册界面简单实现。_第2张图片

然后建登录Activitty,注册Activity,分别在两个布局中写相关的布局控件,

大家所熟悉的接下来我们应该写OpenHelper继承SQLiteOpenHelper,建个db包 我建个studentdao类

然后在Helper里面创建数据库表,数据库版本号增加时候方法(onUpgrade 切记版本号只能增加不能减小),代码如下:

 

public class DbHelper extends SQLiteOpenHelper {

    public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
               String sql="create table student(id integer primary key autoincrement," +
                       "num integer(5),"+"name varchar(3))";
        sqLiteDatabase.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

 

 

 

 

再说dbo,各个Activity都可以从dbo中调用里面的的方法:

因为我只需要插入数据和查询方法所以我只写了两个方法:

 

public class StudentDao {
      Context context;
      DbHelper dbHelper;
     public StudentDao(Context context) {
        this.context = context;
        dbHelper=new DbHelper(context,"student.db",null,1);
    }

    //     往student表中  插入数据方法
    public  void insert(String num,String name){
//        获取数据库写的权限 一般都是更新
        SQLiteDatabase sqLiteDatabase= dbHelper.getWritableDatabase();
        String sql="insert into student(num,name)values(?,?)";
        sqLiteDatabase.execSQL(sql,new String[]{num,name});
//        ContentValues values=new ContentValues();
//        values.put("num",num);
//        values.put("name",name);
//        sqLiteDatabase.insert("student",null,values);
//        sqLiteDatabase.close();
    }

    //    查询数据库方法,  使用数据库读数据库权限的时候,不能调用sqLiteDatabase.close();
    public Cursor query(String num,String name){
        SQLiteDatabase sqLiteDatabase= dbHelper.getReadableDatabase();
        String sql="select*from student where num=?and name=?";
        return sqLiteDatabase.rawQuery(sql,new String[]{num,name});
    }

 

 

 

一个是条件查询,一个是查询所有方法:

 

 

需要注意的是增调用的是getWriteDatabase();

  查询调用的是getRead。。。。()

然后我们在注册Activity调用 insert方法

 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_login_zhuce);
    login_zhuce_xiyibu= (Button) findViewById(R.id.login_zhuce_xiyibu);
    login_zhuce_haoma= (EditText) findViewById(R.id.login_zhuce_haoma);
    login_zhuce_duanxin= (EditText) findViewById(R.id.login_zhuce_duanxin);
    studentdao = new StudentDao(this);


    login_zhuce_xiyibu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String str1=login_zhuce_haoma.getText().toString();
            String str11= login_zhuce_duanxin.getText().toString();
            studentdao.insert(str1,str11);
             Intent intent=new Intent(Login_zhuceActivity.this,Login_dengluActivity.class);

           if(login_zhuce_haoma.getText().toString().length()==11){
               Toast.makeText(Login_zhuceActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
               startActivity(intent);
           }else {
               Toast.makeText(Login_zhuceActivity.this,"请输入正确的11手机号码",Toast.LENGTH_SHORT).show();

           }


        }
    });

 

 

 

简单判断下号码位数。。想加更多判断条件的自行自行添加

接下来我们在登录Activity中写查询方法,因为需要判定我们用条件查询方法:

 

    login_denglu_denglu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent1 = new Intent(Login_dengluActivity.this, MainActivity.class);
                Cursor cursor = studentdao.query(login_edithaoma.getText().toString().trim(), login_editmima.getText().toString().trim());
                if (login_edithaoma.getText().toString().length()==11) {
                    if (cursor.moveToNext()) {
                        startActivity(intent1);
                        Toast.makeText(Login_dengluActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

                    } else {
                        Toast.makeText(Login_dengluActivity.this, "您输入的账号或密码有误", Toast.LENGTH_SHORT).show();

                    }
                }else {
                    Toast.makeText(Login_dengluActivity.this, "请输入正确11位手机号", Toast.LENGTH_SHORT).show();
                }
            }
        });
        login_zhuce_zhuce = (TextView) findViewById(R.id.login_zhuce_zhuce);
        login_zhuce_zhuce.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Login_dengluActivity.this, Login_zhuceActivity.class);
                startActivity(intent);
                String str1 = login_edithaoma.getText().toString();
                String str2 = login_editmima.getText().toString();
                studentdao.query(str1, str2);


//                break;

            }
        });

 

 

 

也是简单判断下,判断和库中存储的账号。密码是否相等:

其实没太大难度,主要需要主要方法调用时小细节,和判断时的一些逻辑~

以上就实现了登录,注册功能,需要源码的可私信我,写的不足之处欢迎大家多包涵,指教,一起交流~

附上源码下载地址给兄弟们:https://download.csdn.net/download/toast_qi/9619466

 

你可能感兴趣的:((数据库)Android登录,注册界面简单实现。)