团队十日冲刺4

今日学习内容

通过一个登录功能来介绍一下SQLite数据库在实际Android项目中的使用。

 包含建表、删除表、增、删、改、查,SQL语法如下:

        建表:

create table if not exists 表名(字段1 类型(长度),字段2 类型(长度),...)

删除表:

drop table if exists 表名

增:

insert into 表名 (字段1,字段2,字段3 ...) values (值1,值2,值3 ...);
insert into 目标数据表 select * from 源数据表;

删:

delete from 表名 where 条件表达式

改:

update 表名 set 字段1=值1,字段2=值2... where 条件表达式

查:

select * from 表名 where 条件表达式

实例:

        1、首先先创建一个DBHelper类(DBOpenHelper.java)

        在这里会执行建库、建表的操作

 View Code

  2、进入登录界面

        在点击登录按钮时,会去数据库里面进行查询,判断账号是否存在(Query查询范例)

/**
  * login event
  * @param v
  */
 public void OnMyLoginClick(View v){
     //判断账号/密码是否有输入的处理...
 
     //调用DBOpenHelper (qianbao.db是创建的数据库的名称)
     DBOpenHelper helper = new DBOpenHelper(this,"qianbao.db",null,1);
     SQLiteDatabase db = helper.getWritableDatabase();
     //根据画面上输入的账号/密码去数据库中进行查询(user_tb是表名)
     Cursor c = db.query("user_tb",null,"userID=? and pwd=?",new String[]{参数1的值,参数2的值},null,null,null);
     //如果有查询到数据
     if(c!=null && c.getCount() >= 1){
         //可以把查询出来的值打印出来在后台显示/查看
         /*String[] cols = c.getColumnNames();
         while(c.moveToNext()){
             for(String ColumnName:cols){
                 Log.i("info",ColumnName+":"+c.getString(c.getColumnIndex(ColumnName)));
             }
         }*/
         c.close();
         db.close();
 
         this.finish();
     }
     //如果没有查询到数据
     else{
         Toast.makeText(this, "手机号或密码输入错误!", Toast.LENGTH_SHORT).show();
     }
 }

3、如果账号不存在,则需要去注册一个新账号(Insert新增范例)

import com.hyl.dao.DBOpenHelper;
 
 import android.content.ContentValues;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 
 /**
  * register event
  * @param v
  */
 public void OnMyRegistClick(View v){
     //对用户输入的值的格式进行判断的处理...
 
     //调用DBOpenHelper
     DBOpenHelper helper = new DBOpenHelper(this,"qianbao.db",null,1);
     SQLiteDatabase db = helper.getWritableDatabase();
     //根据画面上输入的账号去数据库中进行查询
     Cursor c = db.query("user_tb",null,"userID=?",new String[]{参数1的值},null,null,null);
     //如果有查询到数据,则说明账号已存在
     if(c!=null && c.getCount() >= 1){
         Toast.makeText(this, "该用户已存在", Toast.LENGTH_SHORT).show();
         c.close();
     }
     //如果没有查询到数据,则往数据库中insert一笔数据
     else{
         //insert data
         ContentValues values= new ContentValues();
         values.put("userID","画面上输入的值");
         values.put("pwd","画面上输入的值");
         long rowid = db.insert("user_tb",null,values);
 
         Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show();//提示信息
         this.finish();
     }
     db.close();
 }

 4、如果用户忘记密码,则需要进行密码重置(Update修改范例)

转自:https://www.cnblogs.com/198h/p/12793779.html

原文地址:https://www.cnblogs.com/zql-42/p/13028810.html