网络连接之——xUtils 介绍(三)

来源:互联网 发布:串口检测软件 编辑:程序博客网 时间:2024/05/16 15:25

前面的文章,我们介绍了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()方法进行查找。

  • 修改:
    这里写图片描述
  • 删除:
    这里写图片描述
0 0
原创粉丝点击