阅读:11032次   评论:4条   更新时间:2011-05-26    
如何开始使用 Nutz 一文中,我们简单的介绍了如何插入,插入非常简单,那么进行数据库的基本操作将非常简单,比如:

在阅读这篇文章之前,你或许需要看看 Nutz.Dao 实体注释(Entity Annotation)一览表

插入: Insert
dao.insert(p)

insert 方法的返回值就是 p 并且如果你设置了自动增长的 @Id , 它会为你的取得这个新 Id 值。 执行 dao.insert 就是相当于执行一段 INSERT INTO  的 SQL 语句。

更新: Update
dao.update(p)

如果你的POJO没有声明 @Id 或者 @Name ,那么Nutz.Dao会抛出一个 RuntimeException。
在更新对象的时候,所有的字段(包括值为null的字段)都会被写入数据库,为了避免写入NULL字段,甚至考虑多一些,你不想让某些字段被写入对应的数据表,你可以在 POJO 对应的字段上声明 @Readonly, 如果你只有在程序运行时才能确定字段是否该写,你需要使用Nutz.Dao提供的字段过滤模板,该模板只对dao.update 函数有作用:
FieldFilter.create(你的POJO类对象,哪些字段需更新,哪些字段不需更新,是否要忽略null值的字段).run(new Atom(){
   public void run(){
      dao.update(p);
   }
});

描述更新和不更新字段的参数均为正则表达式,比如下面这段代码告诉 Nutz.Dao, 更新Person对象p 的 name | birthday | age 这三个字段,并且如果这三个字段的值为null,忽略该字段。
FieldFilter.create(Person.class,"name|birthday|age",null,true).run(new Atom(){
   public void run(){
      dao.update(p);
   }
});


而下面这段代码告诉 Nutz.Dao, 更新Person对象 p 所有的字段,除了 email | address 这两个字段需要忽略,并且即使是字段值为null,也要更新到数据库里(当然,如果该字段有 Not Null 描述,则会抛出异常)
FieldFilter.create(Person.class,null,"email|address",true).run(new Atom(){
   public void run(){
      dao.update(p);
   }
});

评论 共 4 条 请登录后发表评论
4 楼 defier 2009-09-30 18:54
期待nutz mvc使用说明。
3 楼 switch200500 2009-05-22 16:40
期待着尽快能出来!
2 楼 zozoh 2009-05-22 01:02
呃........是啊,我比你还着急哪 .....
1 楼 switch200500 2009-05-21 22:46
怎么没有关于nutz mvc的使用说明?

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • zozoh在2009-05-05创建
  • zozoh在2011-05-26更新
Global site tag (gtag.js) - Google Analytics