团队十日冲刺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查询范例)
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修改范例)


浙公网安备 33010602011771号