XUtils使用

来源:互联网 发布:淘宝店铺上传宝贝软件 编辑:程序博客网 时间:2024/05/01 08:14


定义实体

public abstract class EntityBase {
//@Id // 如果主键没有命名名为id或_id的时,需要为主键添加此注解
    //@NoAutoIncrement // int,long类型的id默认自增,不想使用自增时添加此注解
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}


数据库表创建

@Table(name = "autoForm", execAfterTableCreated = "CREATE UNIQUE INDEX index_autoForm_url ON autoForm(url)")
public class AutoForm extends EntityBase {
@Column(column = "url")
private String url;
@Column(column = "content")
private String content;


public String getUrl() {
return url;
}

      .....

}



 一些常用方法 借鉴部分

  

  1. DbUtils db = DbUtils.create(this);  
  2. User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性  
  3. user.setEmail("wyouflf@qq.com");  
  4. user.setName("wyouflf");  
  5. db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值  
  6.   
  7. ...  
  8. // 查找  
  9. Parent entity = db.findById(Parent.class, parent.getId());  
  10. List<Parent> list = db.findAll(Parent.class);//通过类型查找  
  11.   
  12. Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));  
  13.   
  14. // IS NULL  
  15. Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","="null));  
  16. // IS NOT NULL  
  17. Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!="null));  
  18.   
  19. // WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset  
  20. List<Parent> list = db.findAll(Selector.from(Parent.class)  
  21.                                    .where("id" ,"<"54)  
  22.                                    .and(WhereBuilder.b("age"">"20).or("age"" < "30))  
  23.                                    .orderBy("id")  
  24.                                    .limit(pageSize)  
  25.                                    .offset(pageSize * pageIndex));  
  26.   
  27. // op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)  
  28. Parent test = db.findFirst(Selector.from(Parent.class).where("id""in"new int[]{123}));  
  29. // op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)  
  30. Parent test = db.findFirst(Selector.from(Parent.class).where("id""between"new String[]{"1""5"}));  
  31.   
  32. DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列  
  33. List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name""count(name)"));  
  34. ...  
  35. //例:分组聚合查询出  Parent表中 非重复的name和它的对应数量  
  36. List<DbModel> dbModels = db.findDbModelAll(Selector.form(Parent.class).select("distinct name,count(name) as num").groupBy("name"));   
  37. db.execNonQuery("sql"// 执行自定义sql  

 转载部分  http://www.bubuko.com/infodetail-801946.html

(3)常见数据库操作

1)查询

DbUtils db = DbUtils.create(this);
List<Grade> stus = db.findAll(Selector.from(Grade.class).where("class_name", "=", ""));
List<Student>list = db.findAll(Selector.from(Student.class)
.where("id","<", 34)
.and(WhereBuilder.b("age",">", 15).or("age", " < ", 20))
.orderBy("id")
.limit(pageSize)
.offset(pageSize* pageIndex));

Studenttest = db.findFirst(Selector.from(Student.class).where("id","in", new int[]{1, 2, 3}));
Studenttest = db.findFirst(Selector.from(Student.class).where("id","between", new String[]{"2", "5"}));
DbModeldbModel =db.findDbModelAll(Selector.from(Student.class).select("name"));//select("name")只取出name列
List<DbModel>dbModels =db.findDbModelAll(Selector.from(Student.class).groupBy("name").select("name","count(name)"));

2)自定义查询(常用到的链接查询可以这样写)

SqlInfo sqlInfo = new SqlInfo();
sqlInfo.setSql("select * from tbl_Student a,tbl_class b where a.stu_class_id = b.id and a.id > ?");
sqlInfo.addBindArg(2);
List<DbModel> StudentByInfo = db.findDbModelAll(sqlInfo);

3)删除,包含三种方法:删除list集合,根据Id删除,删除一个对象

List<Grade> stus = db.findAll(Selector.from(Grade.class).where("class_name", "=", ""));
db.deleteAll(stus);

 db.deleteById(Grade.class, 2);

 db.delete(stus.get(3));

4更新操作和删除操作类似,这里就一一列举

四、有关xUtils

开源项目地址以及作者:https://github.com/wyouflf/xUtils

xUtils api地址
http://xutilsapi.oschina.mopaas.com/



 


0 0
原创粉丝点击