android---数据保存之SQLite(实现登录用户信息保存

原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=1695&extra=page%3D2

由于不大善于总结和撰写,所以很多概念都以网络上参考学习为主,我会将这些知识融于到一个具体的练习中加以理解、巩固和分享。

今天要学习的SQLite个人感觉和以前使用的sql server,比较基础的东西都大同小异,基本的创建数据库表、对数据的增删改查的语句都差不多,如果懂得sql server的人学习SQLite应该还是容易上手的。唯一感觉不习惯的是,初次了解SQLite,在网上看别人的示例时,总感觉得很混乱,其实原因在于同样实现一个数据的增删改查,是有几种不同方法的。例如插入数据:有使用SQLiteDataBase对象执行sql语句方法db.execSQL(sql);或者db.insert(table, nullColumnHack, values);也有content provide和content Resolver搭配使用的(数据库提供对外访问 和 提供从外数据访问)。

如果一个应用程序中的数据库无需提供对外访问,实现一个继承自SQLiteOpenHelper的数据库帮助类,以支持数据库的创建和版本的更新,这些SQLiteDataBase所不能实现的.但是SQLiteDataBase却具备一些非常重要的对数据库进行操作的方法,数据表的创建删除、数据的增删改查都是通过它实现的。

执行增删改操作方法 :db.execSQL(sql); 或者db.insert()、db.delete()、db.update(),并且包括数据表的创建和删除等等也可以通过execSQL实现

  1. //创建表
  2.     public boolean createTable(){
  3.         SQLiteDatabase db=dbHelper.getWritableDatabase();
  4.         String sql="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+"(ID INTEGER PRIMARY KEY,Name VARCHAR,Age INTEGER)";
  5.         try{
  6.             db.execSQL(sql);
  7.             return true;
  8.         }catch(SQLException ex){
  9.             Log.d(tag, "create table failure");
  10.             return false;
  11.         }
  12.     }

  13.     //添加数据
  14.     public boolean addData(){
  15.         String name=etname.getText().toString();
  16.         String age=etage.getText().toString();
  17.         SQLiteDatabase db=dbHelper.getWritableDatabase();
  18.         String sql="insert into "+TABLE_NAME+"(name,age) values ('"+name+"','"+age+"')";
  19.         try{
  20.             db.execSQL(sql);
  21.             
  22.             return true;
  23.         }catch(SQLException ex){
  24.             Log.d(tag, "add data failure");
  25.             return false;
  26.         }
  27.     }
  28.     
  29.     //修改
  30.     public boolean updateData(){
  31.         SQLiteDatabase db=dbHelper.getWritableDatabase();
  32.         String sql="update "+TABLE_NAME+" set age='2' where name like 'cb'";
  33.         Object[] bindArgs={"cb"};
  34.         try{
  35.             db.execSQL(sql, bindArgs);
  36.             return true;
  37.         }catch(SQLException ex){
  38.             Log.d(tag, "update data failure");
  39.             return false;
  40.         }

  41.     }
复制代码
执行数据查询方法:db.rawQuery(sql, selectionArgs); 或者db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);

  1. //查询
  2.     public void selectData(){
  3.         SQLiteDatabase db=dbHelper.getReadableDatabase();
  4.         String[] columns={"name"};
  5.         Cursor cursor=db.query(TABLE_NAME, columns, null, null, null, null, null);
  6.         String names="";
  7.         while(cursor.moveToNext()){
  8.             int c=cursor.getColumnIndexOrThrow("Name");
  9.             String name=cursor.getString(c);
  10. //            < = >
  11. //            String name=cursor.getString(0);//只查询了一列
  12.             if(names==""){
  13.                 names=name;
  14.             }else{
  15.                 names=names+"\n"+name;
  16.             }
  17.         }
  18.         tvname.setText(names);
  19.         //另外一种查询方法
  20. //        String sql="select name from "+TABLE_NAME;
  21. //        Curosr cursor=db.rawQuery(sql, null);
  22.     }
复制代码

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值