android高级框架xUtils之DbUtils

xutils简介:
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();
        }
    }












  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值