探索與發現

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks

          http://www.aygfsteel.com/Files/zhaijianhui/ejb插刪改查.rar

          /*
          對表的修改
          */
          public void updateNode(UseInfoDto dto) {
          ??? UseInfo useinfo;
          ?? try {
          ???? System.out.println("===========");
          ??? useinfo=home.findByPrimaryKey(dto.getName());
          ??? useinfo.setPassword(dto.getPassword());
          ??? System.out.println("用戶名"+dto.getName()+"修改后的記錄密碼"+dto.getPassword());
          ?? }
          ?? catch (Exception ex) {
          ???? ex.printStackTrace();
          ???? System.out.println("修改記錄出現異常");
          ?? }
          ? }
          因為name作為主鍵,所以不可能再在這里調用setName("xxxxxw")方法了,,
          否則會產生錯誤:
          javax.ejb.TransactionRolledbackLocalException: EJB Exception: ; nested exception
          ?is: java.lang.IllegalStateException: [EJB:010144]The setXXX method for a primar
          y key field may only be called during ejbCreate.
          java.lang.IllegalStateException: [EJB:010144]The setXXX method for a primary key
          ?field may only be called during ejbCreate.
          想一想有沒有必要修改主鍵的值呢,很顯然是沒有必要的,看看當今的一些應用就知道,電信,銀行這些部門只提供注冊用戶的一般資料驗證,不會允許你去改用戶名的..
          /*
          對表增加一條記錄
          */
          ?public void addNode(UseInfoDto dto) {
          ??? UseInfo useinfo;
          ?try {
          ?? System.out.println("home=========="+home);
          ??? useinfo = home.create(dto.getName());
          ??? //useinfo.setName(dto.getName());
          ??? useinfo.setPassword(dto.getPassword());
          ??? System.out.println("調用 了addNode");
          ??? System.out.println("創建了新記錄為"+dto.getName()+":"+dto.getPassword());
          ?}
          ?catch (CreateException ex) {
          ?? ex.printStackTrace();
          ?? System.out.println("創建遠程接口實例時出異常");

          ?}
          這也和上面的一個道理,因為主鍵字段不允許暴露給客戶setXXX方法,所以我們要創建一個create(主鍵)給客戶調用,這樣我們就可依我上面所做的方式創建一條記錄了,,
          注意在ejbCreate(XXX)方法里要加上一句? setXXX(XXX);否則會報錯的喲
          因為ejbCreate在服務器本地調用所以可以調用setXXX方法.
          ok,祝旅途愉快!

          posted on 2006-07-14 23:12 蜘蛛 閱讀(925) 評論(0)  編輯  收藏 所屬分類: ejb

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 小金县| 嘉峪关市| 建始县| 隆尧县| 重庆市| 平原县| 寿阳县| 遂溪县| 轮台县| 泊头市| 磐安县| 明光市| 邻水| 遂宁市| 广州市| 高要市| 舞阳县| 淅川县| 永康市| 本溪市| 富阳市| 永丰县| 屯留县| 鄂温| 仁怀市| 崇义县| 黄山市| 崇信县| 阳信县| 翼城县| 望谟县| 承德市| 祁连县| 肥西县| 蒲江县| 滦南县| 七台河市| 勐海县| 白银市| 荃湾区| 海城市|