Dao接口基本操作

插入Insert一条 SQL 插入一条记录或者多条记录
插入FastInsert一条 SQL ,通过batch插入多条记录
删除Delete一条 SQL 删除一条记录
更新Update一条 SQL 更新一条或者多条记录
获取Fetch一条 SQL 获取一条记录
查询Query一条 SQL 根据条件获取多条记录
清除Clear一条 SQL 根据条件删除多条记录
建表Create根据实体建表
删表Drop根据实体/表名称进行删表
聚合Func执行sum,count等操作

 创建数据表:为pet创建数据表,如果数据表存在,则自动忽略

dao.create(Pet.class,false);

删除数据表: 删除Pet的数据表

dao.drop(Pet.class); //全部删除掉,没条件的,慎用!!!

插入Insert

Person p = new Person();
p.setName("Peter");
p.setAge(22);
dao.insert(p);
System.out.println(p.getId());

 取得Fetch

根据名称获取 (如果你的实体声明了 @Name 字段, 字符型主键,或者带唯一性索引的字段)

Person p=dao.fetch(Person.class,"peter");
system.out.println(p.getId());

根据ID获取(如果你的实体声明了@Id字段,数值型主键)

Person p=dao.fetch(Person.class,2);
Systen.out.println(p.getname());

@Id和@Name可以同时存在于一个Pojo类内,但不允许标注在同一个属性,毕竟不可以同时是数值型主键又是字符型主键

更新UPdate

Person p=dao.fetch(Person.class,2);
p.setAge(32);
dao.update(p)     //单条更新
dao.update(Person.class,Chain.makeSpecial("age","+1").add("location","yvr"),Cnd.where("name","=","wendal));      //多条更新

删除Delete

根据名称删除(如果你的实体声明了 @Name 字段). 批量删除请用clear

dao.delete(Person.class,"Peter");

查询Query

查询全部记录

List<Person> people =dao.query(person.class,null);

按条件查询

List<Person> people = dao.query(Person.class, Cnd.where("name", "like", "P%"));
  •  Cnd 类的全名是 org.nutz.dao.Cnd
    • 它主要是用来快速替你建立一个 org.nutz.dao.Condition 接口的实现类
    • where() 函数 第一个参数是字段名,要和 Java 类里面的字段名相同。
    • where() 函数 第二个参数遵循 SQL 的标准,可以是 ><>=<= 等等
    • 提供了一个 wrap 函数,你可以直接写 SQL 的条件

 分页查询

List<Person> people = dao.query(Person.class, Cnd.where("age", ">", 18), dao.createPager(2, 4));
  • dao.createPager 第一个参数是第几页,第二参数是一页有多少条记录

清除Clear

清除所有记录

dao.clear(Person.class); //还是那句,慎用

 按条件清除

dao.clear(Person.class,Cnd.where("id", ">", 35));

集合操作(func)

整数类型。例如调用sum

dao.func(Person.class, "sum", "age");

其他类型

dao.func2(Person.class, "min", "price");

自动建表

Dao接口有一个create方法,通过它可以让nutz为你建好数据库表

dao.create(Pet.class, false);

第一个参数是Pojo类, 第二个参数是如果表存在,是不是先删再重新建,否则就是保持原样

字段的详细定义,例如定义长度

@ColDefine(width=1024)
private String data;

强制自定义字段类型

@ColDefine(customType="TEXT", type=ColType.VARCHAR)
private String fu;

添加索引, 类级注解

@TableIndexes({@Index(name="orderid_userid", fields={"orderId", "userId"})})
public class UserOrder {

    private long id;
    private long orderId;
    private long userId;
    //... 其他属性
}

局限性

  • 不生成外键,我们也不推荐用外键
  • 只能解决一般建表需求,复杂的表结构请通过自定义sql完成

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值