今日学习内容
通过一个登录功能来介绍一下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查询范例)
1 /** 2 * login event 3 * @param v 4 */ 5 public void OnMyLoginClick(View v){ 6 //判断账号/密码是否有输入的处理... 7 8 //调用DBOpenHelper (qianbao.db是创建的数据库的名称) 9 DBOpenHelper helper = new DBOpenHelper(this,"qianbao.db",null,1); 10 SQLiteDatabase db = helper.getWritableDatabase(); 11 //根据画面上输入的账号/密码去数据库中进行查询(user_tb是表名) 12 Cursor c = db.query("user_tb",null,"userID=? and pwd=?",new String[]{参数1的值,参数2的值},null,null,null); 13 //如果有查询到数据 14 if(c!=null && c.getCount() >= 1){ 15 //可以把查询出来的值打印出来在后台显示/查看 16 /*String[] cols = c.getColumnNames(); 17 while(c.moveToNext()){ 18 for(String ColumnName:cols){ 19 Log.i("info",ColumnName+":"+c.getString(c.getColumnIndex(ColumnName))); 20 } 21 }*/ 22 c.close(); 23 db.close(); 24 25 this.finish(); 26 } 27 //如果没有查询到数据 28 else{ 29 Toast.makeText(this, "手机号或密码输入错误!", Toast.LENGTH_SHORT).show(); 30 } 31 }
3、如果账号不存在,则需要去注册一个新账号(Insert新增范例)
1 import com.hyl.dao.DBOpenHelper; 2 3 import android.content.ContentValues; 4 import android.database.Cursor; 5 import android.database.sqlite.SQLiteDatabase; 6 7 /** 8 * register event 9 * @param v 10 */ 11 public void OnMyRegistClick(View v){ 12 //对用户输入的值的格式进行判断的处理... 13 14 //调用DBOpenHelper 15 DBOpenHelper helper = new DBOpenHelper(this,"qianbao.db",null,1); 16 SQLiteDatabase db = helper.getWritableDatabase(); 17 //根据画面上输入的账号去数据库中进行查询 18 Cursor c = db.query("user_tb",null,"userID=?",new String[]{参数1的值},null,null,null); 19 //如果有查询到数据,则说明账号已存在 20 if(c!=null && c.getCount() >= 1){ 21 Toast.makeText(this, "该用户已存在", Toast.LENGTH_SHORT).show(); 22 c.close(); 23 } 24 //如果没有查询到数据,则往数据库中insert一笔数据 25 else{ 26 //insert data 27 ContentValues values= new ContentValues(); 28 values.put("userID","画面上输入的值"); 29 values.put("pwd","画面上输入的值"); 30 long rowid = db.insert("user_tb",null,values); 31 32 Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show();//提示信息 33 this.finish(); 34 } 35 db.close(); 36 }
4、如果用户忘记密码,则需要进行密码重置(Update修改范例)