网络连接之——xUtils 介绍(三)
前面的文章,我们介绍了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()方法进行查找。
- 修改:
- 删除:
更多相关文章
- Android(安卓)settings.db数据库中添加一条新的默认配置项
- Android(安卓)Cavans 基础应用
- Android程序中任意位置获取Context
- Android请求数据格式与Java后台需求格式不匹配HttpMediaTypeNotS
- Android(安卓)访问WebService
- Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转
- Android-------Activity之间通信
- Binder学习笔记(十二)—— binder_transaction(...)都干了什么?
- Android之 Viewpager