前面的文章,我们介绍了ViewUtils和HttpUtils,这里我们来再来介绍一下剩下的两个组件:DbUtils和BitmapUtils。
可以参考大神博客哈:
http://blog.csdn.net/lanyeming2012/article/details/14147975

DbUtils

大家都知道,在Android里面如果要存储一个对象,我们需要创建一个SQLiteOpenHelper,然后还得创建一张对应对象各个属性的表,还得继续把我们的对象转换成ContentValues,进而去存储。真心是麻烦的不能再麻烦了,我们现在介绍的DbUtils就能让你轻松解脱麻绳一样的代码。DbUtils在进行save操作的时候,会根据java反射反射出对象的各个字段,然后去查询数据库中是否存在这个对象类型对应的表,如果表已经存在,直接进行插入操作;如果不存在,就先动态的创建的一张对应我们对象的表,再进行插入处理。
这里插入一个小知识点:由于我们使用xUtils时需要导包,而使用studio时导包很容易,直接从Dependences处搜索,下载即可,而它存到了哪里很多人却并不知道。楼主废了九牛二虎之力终于找到了它在项目下的路径哈:项目路径\app\build\intermediates\exploded-aar.

补充:

注意:并不是所有的实体对象都快可以通过这种方式去存储,一定要保证对象的类型中有int类型的id或者_id的属性,这就对应数据库表中的主键字段。如果类型中没有id字段,可以通过@Id注解去指定一个int类型的字段作为主键。如果表中的又字段不想被存储在数据库中,也可以通过@Transient去实现忽略。如果直接存储一个对象的列表,这样也是被允许的,达到批量存储的目的。

数据类model的注解设置:

@Table(name="user")    //注解数据表名public class User {    @Id(column="id") //或者使用@Column(column="id")    private String id;    private String name;//由于name和password和数据库表中的列名一致,可以不进行注释,否则必须注释    private String password;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}


解析:使用@Table(name=”user”)来注解表名,使用@Id(column=”id”)来注解id,其他属性如果名字和数据表中的列名一致,可以不用进行注解。

使用DbUtils进行数据的操作:

DbUtils dbUtils = DbUtils.create()//创建数据库

  • 插入:
  • 查找:
DbUtils dbUtils = DbUtils.create(this,"MY_FIRST_DB.db");            try {                List<User> users = dbUtils.findAll(Selector.from(User.class));//2.获得所有数据,从User类中,根据注解                for(User user:users){                    Log.d("cursor", "用户名"+user.getName()+"密码"+user.getPassword());                }            } catch (DbException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }


解析:先利用DbUtils中的create()方法创建数据库,然后使用其findAll()方法进行查找。

  • 修改:
  • 删除:

更多相关文章

  1. Android(安卓)settings.db数据库中添加一条新的默认配置项
  2. Android(安卓)Cavans 基础应用
  3. Android程序中任意位置获取Context
  4. Android请求数据格式与Java后台需求格式不匹配HttpMediaTypeNotS
  5. Android(安卓)访问WebService
  6. Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转
  7. Android-------Activity之间通信
  8. Binder学习笔记(十二)—— binder_transaction(...)都干了什么?
  9. Android之 Viewpager

随机推荐

  1. Android实战简易教程(分享小米手电筒源码)
  2. Android自定义动画类——实现3D旋转动画
  3. android 按钮水波纹效果【背景色】
  4. Android(安卓)数据存取试验 (二)
  5. Android(安卓)冷门知识点汇总:你知道哪些A
  6. android之MVC
  7. android 代码生成布局
  8. 深入解析Android中View的工作原理
  9. 无需 root 实现在 Android 设备上运行 Li
  10. StevGuo系列文章翻译之Android内存泄漏检