close

  Lotus Notes的Java API給我感覺很不統一,以新增Document為例,官網所附的sample code是用appendItemValue(Item-name, Item-value)。可是在API上寫的Usage卻用replaceItemValue(Item-name, Item-value)。而且這兩個方法似乎都可以用,此外,要是Item-name是Null,這兩個method丟出的Exception也不同。

  • appendItemValue會丟出NotesException,訊息是:You must provide an item name
  • 而replaceItemValue丟出的卻是NullPointerException

  這兩者的差別是,appendItemValue會對Item產生multi-value,也就是假設Item1有值a,做一次insert或update item1,值也是a,則在Notes Client看到會是a,a。而若一開始沒有Item1,卻replaceItemValue,則Item1值會被產出。總結是不管insert、update,使用appendItemValue對已存在的item做append,會變成multi-value,而repalceItemValue則不會,但若Item1不存在,就會append。這和RDBMS觀念確實有差距。

  此外這兩個method第二個參數,即Item value,其資料型態會對到Notes的資料型態,有以下四種:

  • TEXT:對映Java String,若是其它類別,可能是toString的值。
  • NUMBER:對映Java Number類別,如Double、Integer
  • DateTime:應是對到Java Date類別。
  • Vector:內含上述三個型態值的List。對到Java的Collection類別。
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jemmy 的頭像
    Jemmy

    Jemmy Walker

    Jemmy 發表在 痞客邦 留言(0) 人氣()