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. 论APP测试中黑盒测试方案的重要性?

    运筹帷幄之中,决胜千里之外.古人足不出户,通过正确的部署就能决定千里之外战争的胜利!而于测试人员而言,制定正确的测试方案,就是日后测试就是是否顺利的决定性因素. 在整个测试过程中,对测试人员.资源以及 ...

  2. 手把手ssm+idea

    https://github.com/judasn/Basic-Multi-Module-SSM https://github.com/liyifeng1994/ssm

  3. LinuxShell脚本攻略--第一章 小试牛刀

    使用 shell 进行数学运算: #!/bin/bash no1=; no2=; let result=no1+no2 echo $result result=$[ $no1 + no2 ] resu ...

  4. JDK里面常用的包

    1.java.lang-------java里的核心类,如String.Math.Integer.System.Thread,java.lang里还有一个子包:java.lang.reflect用于实 ...

  5. eclipse 下面的folder,source folder,package的区别与作用

    首先明确一点,folder,source folder,package都是文件夹,既然是文件夹,那么任何的文件都可以往这三种文件夹下面的放.1.他们的区别folder就是普通的文件夹,它和我们wind ...

  6. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  7. <spring:message> 标签

    可以使用<spring:message>标签结合 ResourceBundleMessageSource 的功能,在网页上显示 messages.properties 中的文字讯息,例如在 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. vsto publish后无法弹出winform窗口

    http://www.cnblogs.com/xiyang1011/archive/2011/06/07/2074025.html - - 没有调用form.show()...

  10. linux sort 命令详解

    sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...