xUtils DbUtils 关于实体类注解 汇总

RockyZhang 发布于 1年前,共有 0 条评论

先来官方demo

DbUtils db = DbUtils.create(this);
     User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
     user.setEmail("wyouflf@qq.com");
     user.setName("wyouflf");
     db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值      ...
     // 查找
     Parent entity = db.findById(Parent.class, parent.getId());
     List<Parent> list = db.findAll(Parent.class);//通过类型查找      Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));      // IS NULL
     Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));
     // IS NOT NULL
     Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null));      // WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset
     List<Parent> list = db.findAll(Selector.from(Parent.class)
                                        .where("id" ,"<", 54)
                                        .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30))
                                        .orderBy("id")
                                        .limit(pageSize)
                                        .offset(pageSize * pageIndex));      // op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
     Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));
     // op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
     Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"}));      DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列
     List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)"));
     ...      List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询
     db.execNonQuery(sql) // 执行自定义sql
     ...

注解总结

1 .主键

    @Id // 如果主键没有命名名为id或_id的时,需要为主键添加此注解
    @NoAutoIncrement // int,long类型的id默认自增,不想使用自增时添加此注解
    private int id;

2. 忽略字段

  // Transient使这个列被忽略,不存入数据库
    @Transient
    public String willIgnore;
    /** ---------------------------------*/
    public static String staticFieldWillIgnore; // 静态字段也不会存入数据库

3.表名

@Table(name = "parent", execAfterTableCreated = "CREATE UNIQUE INDEX index_name ON parent(name,email)") 
//name即表名, 
//execAfterTableCreated  自定义表创建之后要执行的sql。为parent表创建(name,email)索引 -->在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。

4.列名

@Column(column = "name") //为列名加上注解 可以针对命名不统一和防止混淆
public String name;

5.外键

  延迟加载

    @Finder(valueColumn = "id", targetColumn = "parentId")
    public FinderLazyLoader<Child> children; // 关联对象多时建议使用这种方式,延迟加载效率较高。
    
    @Foreign(column = "parentId", foreign = "id")
    public ForeignLazyLoader<Parent> parent;

非延迟加载

    @Finder(valueColumn = "id",targetColumn = "parentId")
    public Child children;
    
    @Foreign(column = "parentId", foreign = "isVIP")
    public List<Parent> parent;

1对多

    @Finder(valueColumn = "id", targetColumn = "parentId")
    private List<Child> children;
    
    @Foreign(column = "parentId", foreign = "id")
    public Parent parent;

代码

        Parent parent = new Parent();
        parent.name = "测试" + System.currentTimeMillis();
        parent.setAdmin(true);
        parent.setEmail("wyouflf@gmail.com");
        
        DbUtils db = DbUtils.create(this.getActivity());
        db.configAllowTransaction(true);
        db.configDebug(true);         Child child = new Child();
        child.name = "child' name";
        child.parent = parent;
        db.saveBindingId(child);//保存对象关联数据库生成的id

6.其他

    @NotNull  //不能为空
    @Check(value = "age>0") //age必须大于0  创建表时调用"
    @Unique    //唯一
    public int age;

android Xutils dbutils 注解的更多相关文章

  1. 【转】Android 最火框架XUtils之注解机制详解

    原文:http://blog.csdn.net/rain_butterfly/article/details/37931031 在上一篇文章Android 最火的快速开发框架XUtils中简单介绍了x ...

  2. Android 最火框架XUtils之注解机制具体解释

    在上一篇文章Android 最火的高速开发框架XUtils中简介了xUtils的基本用法,这篇文章说一下xUtils里面的注解原理. 先来看一下xUtils里面demo的代码: @ViewInject ...

  3. Android Xutils 框架(转)

    Android Xutils 框架 (转) 目录(?)[-] xUtils简介 目前xUtils主要有四大模块 使用xUtils快速开发框架需要有以下权限 混淆时注意事项 DbUtils使用方法 Vi ...

  4. Android Xutils 框架

    XUtils是git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少,下面是介绍: 鉴于大家的热情,我又写了一篇Android 最火框架XUtils之注解机 ...

  5. Android中通过注解代替findViewById方法

    转自:http://www.2cto.com/kf/201405/302998.html 这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定义一个注解和解析一 ...

  6. android xUtils get post

    使用android xUtils框架,进行http的get和post验证. 参考链接: https://github.com/wyouflf/xUtils3 http://blog.csdn.net/ ...

  7. 2.2、Android Studio通过注解提升代码检测

    使用像Lint这样的代码检测工具可以帮助你发现问题和提升代码,但是代码检测在有些地方很难应用.例如,Android的资源ID,使用一个int类型来表示字符.图像.颜色或者其他资源类型所以代码检测工具不 ...

  8. 利用APT实现Android编译时注解

    摘要: 一.APT概述 我们在前面的java注解详解一文中已经讲过,可以在运行时利用反射机制运行处理注解.其实,我们还可以在编译时处理注解,这就是不得不说官方为我们提供的注解处理工具APT (Anno ...

  9. 理解Android中的注解与反射

    反射 Java反射(Reflection)定义 Java反射机制是指在运行状态中 对于任意一个类,都能知道这个类的所有属性和方法:对于任何一个对象,都能够调用它的任何一个方法和属性: 这样动态获取新的 ...

随机推荐

  1. Multipath多路径冗余全解

    一.什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系.也就是说 ...

  2. 基于dubbo源码包通过Maven构建dubbo的详细步骤

    通过Maven构建dubbo 既然可以下载得到源码以及发布包,那么为什么要去构建dubbo呢?,我们先来看下dubbo的主要模块: 我们不仅要使用dubbo的核心框架,还要使用它的一些服务,比如管理控 ...

  3. 开机使用root用户登录

    有的fedora版本默认不支持开机以root用户登录,这是出于安全机制的考虑,可以通过设置实现开机root用户登录 步骤: 1.修改.etc/pam.d/gdm文件,注释掉auth  pam_succ ...

  4. parent relation column can't be updated LESSON_EXTENDED_ATTRIBUTE->LESSON_ID

    MyCat  中 作为分片的主键不允许更新 , 需要设置为null,调用updateSelectiveByPrimaryKey来更新数据 parent relation column can't be ...

  5. 指针类型(C# 编程指南)

    原文地址:https://msdn.microsoft.com/zh-cn/library/y31yhkeb.aspx 在不安全的上下文中,类型可以是指针类型.值类型或引用类型. 指针类型声明采用下列 ...

  6. cssText在 IE6/7/8和chrome/Firefox/IE9+的不同

    一,结尾没有分号 <div style="font-size:14px;">test</div> <script type="text/ja ...

  7. css -- 题目汇总

    1.描述下浮动和它的工作原理.模块浮动,使其脱离文档流,并且生成一个块级框.(所以父级撑不开就得到了很好的解释) 2.清除浮动的方法有那些,分别适用于什么情形.clear  ,  父级元素overfl ...

  8. HIbernate实现增、删、改、查。

    //大配置 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC " ...

  9. 198. 213. 337. House Robber -- 不取相邻值的最大值

    198. House Robber You are a professional robber planning to rob houses along a street. Each house ha ...

  10. 190. Reverse Bits -- 按位反转

    Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...