今日学习内容
通过一个登录功能来介绍一下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修改范例)