Android与SQLite——实现简单登录

基础部分,具体步骤,没有分层,是自己写在印象笔记里的,俗简勿喷。

有些地方明白意思但是写不好,全是自己的理解,专业名词词汇量不是很足,主要看代码吧。

搭建安卓项目就不废话了,需要一个登录界面,界面的搭建可以从简,通过两个EditText和一个Button即可,登录成功后可能需要一个跳转界面,也可以通过Toa显示。

java文件至少需要两个,一个是页面的,一个是数据库的。

现在开始:



1.创建数据库类SQLiteHelper,继承SQLiteOpenHelper.

     1.1 重写构造方法。其中context指使用页面(哪用哪写),name指数据库名称,factory指游标(一般为null),version指数据库版本(为正整数)。
          eg:
public SQLiteHelper(Context context, String name, CursorFactory factory,int version) {
             super(context, name, factory, version);
             // TODO Auto-generated constructor stub
         }

     1.2参数过于繁多可以进行重载
          eg:
public SQLiteHelper(Context context, String name){
             super(context,name,null,VSRSION);
        }

     1.3可以使用 private  static  int  VSRSION  = 1;定义版本号,
     1.4使用回调函数,在其中使用execSQL和数据库语句创建数据库。
          eg:
public void onCreate(SQLiteDatabase db) {
             // TODO Auto-generated method stub
            db.execSQL( "CREATE TABLE USER(USERID NUMBER(8,0) PRIMARY KEY ,USERNAME VARCHAR2(20),PASSWORD VARCHAR2(20))");
}


2.搭建登录视图界面,并搭建完成对应的java文件。


3.切换至java文件中
     3.0
          eg: 
private SQLiteHelper dphelper;
          eg: 
private Button btnlogin;
     3.1控件实例化
          eg:
btnlogin =(Button)findViewById(R.id.bt_login);
     3.2数据库实例化
          eg:
dphelper =new SQLiteHelper(LoginActivity.this, "mydb" );//(本页面,“定义的数据库名称”)
     3.3将按钮绑定监听器
          eg:
btnlogin .setOnClickListener(new ViewOCL());
     3.4创建内部类,完成view点击监听
          eg:
class ViewOCL implements View.OnClickListener{
             SQLiteDatabase db;
             @Override
             public void onClick (View vi) {
                  switch(vi.getId()){
                  case R.id.bt_login :
                  db= dphelper.getReadableDatabase();//这里我们是测试登录,不作修改删除,所以使用readable
                  String u=username.getText().toString();//获取EditText控件值
                  String p=password.getText().toString();
                  Cursor cur=db.rawQuery("select * from USER where USERNAME=? and PASSWORD=?", new String[]{u,p});
                  //将控件获取的值与数据库中的进行对比*自己理解去写才看的懂*
                  if(cur.moveToNext()){
                      intent=new Intent(LoginActivity.this ,IndexActivity.class);
                      startActivity( intent);
                  } else{
                 Toast. makeText(getApplicationContext(), "用户名或密码错误", Toast.LENGTH_LONG ).show();
                  }
                  db.close();
                  break;

     3.5完成其他控件的监听事件

4.在执行过程3的时候因数据库没有值,所以我们需要使用cmd命令行进行数据插入。
     4.1运行cmd,输入adb shell,如果正常显示则继续4.2,不能正常显示请看4.1.1
          4.1.1输入adb shell,显示“XX不是系统的命令行”,解决方法:找到sdk文件夹,复制其中的platform-tools文件夹路径,然后将路径值输入到环境变量中的path中。
          4.1.2输入adb shell,显示“error:device offline”,解决方法:本错误时指虚拟机运行,我们只要将程序进行Run或者打开虚拟机。
          4.1.3输入过程中,如果出现命令窗口卡顿,没有反应,可以重启adb或者命令行窗口。
     4.2在上一步运行正常后我们可以继续如下操作,如果已经十分熟悉,可以连续操作无需查看。
          4.2.1输入cd data(进入目录中的data文件夹),回车。
          4.2.2输入cd data(进入目录中的data文件夹,不是重复,而是data文件夹中还有一个叫data的文件夹),回车。
          4.2.3输入cd com.xxxx.xxx(这里输入自己的项目包名,如果不记得或者不确定可以输入"ll"查看),回车。
          4.2.4输入cd databases(进入自己项目中的数据包),回车。
          4.2.5这时我们要保证自己的项目在虚拟机上已经运行到相应界面,只差点一下"登录"按钮的程度。因为要让其运行至调用构造方法,保证数据库已经通过程序自动创建完毕。
                 这样我们才能通过输入"ll"看到自己的数据库名mydb等。
          4.2.6输入sqlite3 mydb回车。可能会有报错,不用管。
          4.2.7输入.schema回车,这时如果程序正确,并且运行到了登录页面,我们就能看到自己在数据库类中写的创建数据库表的语句,确保一定的有的情况下继续。
          4.2.8直接输入SQL语句(插入数据,方便登录测试):insert into USER(USERID,USERNAME,PASSWORD) values ('01','admin','123');不要忘记分号。


你可能感兴趣的:(SQLite,Android,安卓数据库登录,Android开发与使用)