首页 > 代码库 > Xutils3框架使用

Xutils3框架使用

目前Android开发很火的一个框架Xutils框架。它有四个模块:1、ViewUtils。2、HttpUtils。3、DbUtils。4、BitmapUtils

记得是去年的差不多这个时候,我的大学老师张老师介绍我去学习Xutils框架,当时项目有很多对数据库的操作,所以刚学习Xutils的时候,首先着重学习对DbUtils模块的使用,感受到了他的好用处。接下来为大家介绍一下Xutils框架的基本使用。

使用Xutils框架需要下载Xutils的jar包。(网上很好找,我使用的是xutils-3.3.25)

需要加入以下两个权限:

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.INTERNET" />

在Application中初始化Xutils框架 

  x.Ext.init(this); // 初始化Xutils框架
  x.isDebug(); //开启Debug模式,对app性能有一些影响

(一)、DbUtils模块

  Xutils框架使用了注解的方式来方便了对数据的操作,如下:

  @Table(name = "t_person")
  public class Person {

  @Column(name = "id", isId = true, autoGen = true, property = "unique")
   public int id;

  @Column(name="username")
  public String username;

  @Column(name="password")
  public String password;
  }
    注意:id属性的注解设置为isId=true,就不用设置autoGen=true和property = "unique",这里只是演示有这么一个属性。设置autoGen=true可以让此字段自增,pr  operty="unique"可以让该字段唯一,当然也可以设置一些其他的限制。
  接下来是对数据库的操作:
  1)、收下获取DaoConfig实例    private static DbManager.DaoConfig getDaoconfig(Context context) {
    DbManager.DaoConfig daoConfig = new DbManager.DaoConfig(); //获取DaoConfig
    daoConfig.setDbName("mydb.db"); //设置数据库名称
    daoConfig.setDbVersion(1); //设置版本号
    daoConfig.setDbDir(context.getDir("DATABASE", 0)); // 数据库位置为:data/data/包名/app_DATABASE
    daoConfig.setDbOpenListener(new DbManager.DbOpenListener() {
    @Override
    public void onDbOpened(DbManager db) {
    // 开启WAL, 对写入加速提升巨大
    db.getDatabase().enableWriteAheadLogging();
    }
    });
    return daoConfig;
    }
  2)、增删改查的操作
    //获取DbManager
    DbManager manager = x.getDb(getDaoconfig(context)); //获得DbManager
    Person person = new Person();
    person.name = "张三";
    person.password = "123456";
    //保存数据,调用manager的save方法直接保存对象到数据库(是不是感觉和Hibernate很像)
    manager.save(person);
    //保存或者更新数据,如果id在数据库中存在,则更新对象,不存在则添加为新的数据
    manager.saveOrUpdate(person);
    //删除数据,会删除数据库中与person的id相同的数据
    manager.delete(person);
    //查询数据,Xutils提供了几种查询方式,但是原理都是一样的,方便了开发人员的使用
      
      List<Pseron> ps = manager.selector(Person.class).where("username", "=", "张三").and("password", "=", "12346").findAll();
      使用wher的参数为("列名", "运算符", "值")。运算符可以是“=”、“!=”、“<”、“<=”等等,并且可以根据实际情况添加add、or等条件。
      使用findAll返回的是所有符合条件的数据的List集合,泛型为当前查询的实体类。findFirst只得到查询的第一条数据。总之findAll的查询结果是一个List集合,而
        findFirst的查询结果是一个对象,这个也很好理解。

      如果只想查询某个列或者某几个列,可以用以下的方法:
        DbModel model = manager.selector(Person.class).select("username","password").findFirst();
      返回的是一个DbModel类型,它将查询到的数据已Key-Value的形式存在,如果需要得到某一列的数据,只需要model.getString("列名")、model.getInt("列名")        等就可以得到数据。

Xutils3框架使用