android高级框架xUtils之DbUtils
2016-01-23 14:15
375 查看
xutils简介:
xUtils 是一个工具类的集合体,其中包含许多实用的Android工具,主要包含四大模块:
1、ViewUtils的模块(点击进入)
2、 HttpUtils的模块
3、 BitmapUtils的模块
4、 DBUtils的模块
开始学习DbUtils:
需要添加访问存储卡的权限
定义数据表对应的类,必须是public的非内部类(单独一个类文件)
学习DbUtils可以分三步来学习:
一、定义数据表对应的类
二、创建数据库
一般情况下、我们为了保证操作的数据库是同一个数据库,会数据定义在自定义的application中,将这个application和工程关联,那么就可以保证
了我们所操作的数据库是同一个了
三、数据库操作(增删改查)
1.插入数据:
2.查询数据
3.更新数据
4.删除数据
xUtils 是一个工具类的集合体,其中包含许多实用的Android工具,主要包含四大模块:
1、ViewUtils的模块(点击进入)
2、 HttpUtils的模块
3、 BitmapUtils的模块
4、 DBUtils的模块
开始学习DbUtils:
需要添加访问存储卡的权限
定义数据表对应的类,必须是public的非内部类(单独一个类文件)
学习DbUtils可以分三步来学习:
一、定义数据表对应的类
//指定表名,如果不用这个注解,表名默认为包名+类名 @Table(name="tbl_User") public class User { //主键,必须有,自增长 @Id private int id; //指定列名,如果不指定,就是字段名 //Unique注解代表字段唯一,不重复 @Column(column="username") @Unique private String name; //column可以省略 //非空 @Column @NotNull private String email; //规定年龄值的范围 @Check("20 <= age and age <= 130") private int age; //getxxx //setxxx //tostring //...... 常见的DB注解: @Check check约束 @Column 列名 @Id 主键,一般设置为int,自增长 @NotNull 不为空 @Table 表名 @Unique 唯一约束
二、创建数据库
一般情况下、我们为了保证操作的数据库是同一个数据库,会数据定义在自定义的application中,将这个application和工程关联,那么就可以保证
了我们所操作的数据库是同一个了
package com.qf.xutils_dbutils; import ... /** * Created by LiuTao008 * on 2016/1/20. */ public class MyApplication extends Application{ //定义一个全局的DButils public static DbUtils dbUtils; @Override public void onCreate() { super.onCreate(); createDbUtilsWithCfg(); } /** * 创建DbUtils ,不带任何配置 * 默认情况下,数据库创建在/data/data/包名/databases/xutils.db * */ protected void creatDbUtils(){ dbUtils = DbUtils.create(this); } /** * 创建数据库,指定数据库路径和名字 */ protected void createDBUtilsWithDef(){ dbUtils = DbUtils.create(this,"/sdcard/xutils","user.db"); } /** * 创建数据库,使用配置 */ protected void createDbUtilsWithCfg(){ //定义一个数据库配置 DbUtils.DaoConfig daoConfig = new DbUtils.DaoConfig(this); daoConfig.setDbDir("/sdcard/xutils"); daoConfig.setDbName("user2.db"); dbUtils = DbUtils.create(daoConfig); } }
三、数据库操作(增删改查)
1.插入数据:
/** *插入数据 */ protected void insert(){ User user1 = new User(); user1.setName("张三"); user1.setAge(24); user1.setEmail("zs@163.com"); User user2 = new User(); user2.setName("李四"); user2.setAge(20); user2.setEmail("ls@163.com"); List<User> userList = new ArrayList<>(); userList.add(user1); userList.add(user2); try { MyApplication.dbUtils.saveAll(userList); } catch (DbException e) { e.printStackTrace(); } }
2.查询数据
/** * 查询数据,返回的数据是一个集合,我们可以通过其他字段在这个集合中查找我们想要的数据 */ protected void query(){ try { List<User> userList = MyApplication.dbUtils.findAll(User.class); Log.d("query",userList.toString()); } catch (DbException e) { e.printStackTrace(); } }
3.更新数据
/** * 更新数据 *1.通过id,得到对应的数据对象 *2.修改值 *3.执行更新操作update */ protected void update(){ try { User user = MyApplication.dbUtils.findById(User.class, 2); user.setAge(80); MyApplication.dbUtils.update(user, "age"); } catch (DbException e) { e.printStackTrace(); } }
4.删除数据
/** * 删除数据 */ protected void delete() { User user = new User(); user.setId(1);//删除id为1的数据,一点非常重要的是,id是自增长的,并且是从1开始计数的 try { MyApplication.dbUtils.delete(user); } catch (DbException e) { e.printStackTrace(); } }
相关文章推荐
- Android控件的继承关系
- Android之ProgressDialog
- Android之AlertDialog
- Android Service完全解析,关于服务你所需知道的一切(下)
- Android随时随地退出程序
- Android知晓当前是在哪一个活动
- android 改变输入法enter键文字 为搜索 下一个 以及前往
- 自定义Toast
- Android用户界面基础之使用编码方式绘制登录界面
- Android用户界面基础之LinearLayout、TableLayout、RelativeLayout、FrameLayout、GridLayout学习
- Android用户界面基础之ViewGroup学习
- Android开发技巧、常见的坑和解决方案(二)
- Android动画学习笔记-Android Animation
- Android 屏幕适配方案
- Android AutoLayout全新的适配方式 堪称适配终结者
- android SD卡检测及容量读取
- Android 自定义RadioButton 实现文字上下左右方向的图片大小设置
- Read only file system on Android
- Android数字签名解析(三)
- 【Android】项目常用功能集锦(一)