<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最近在熟習新公司的項目,看到里面亂麻麻的SQL語句,if - else語句就頭大,雖然這個項目有用hibernate,但是感覺上沒有運用到hibernate的優勢,只是用了一些hql語句和hibernate的數據庫分頁。沒有延遲加載,沒有聯級操作,表也沒有建立約束,甚至沒有索引。現在該項目已經算是做完了,我剛到,要去接手并修改里面的內容,真是很痛苦的,最痛苦的還是那512的內存。。。

    在一開始建立數據庫表時,建立好約束,建立好索引,表的設計合理,之后的一切都會是很美好的。比如有3張表:

    學生:t_student
    id
    name
    email


    科目:t_subjects
    id
    subjects name
    student_id


    考試:t_test
    id
    student_id
    subjects_id
    month
    times

    學生表和科目表,學生表和考試表,科目和考試都是一對多關系。建立好索引和約束,然后由hibernate自動生成hbm文件,并在學生表、科目表的hbm文件里設置inverse="true" cascade="all" lazy="true"。

    就大致配置好了,然后假如要錄入這樣一條涉及到3個表的記錄:
    學生姓名、email、科目名稱、月份、考試次數
    就只需要寫一個簡單的方法調用session.save就可以保存所有內容了:

    public ActionForward execute(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
      DynaActionForm student_registerForm = (DynaActionForm) form;// TODO Auto-generated method stub
      //receive from actionform
      String strname = student_registerForm.getString("name");
      String stremail = student_registerForm.getString("email");
      String strsubjectname = student_registerForm.getString("subjectname");
      int intmonth = Integer.parseInt(student_registerForm.getString("month"));
      int inttimes = Integer.parseInt(student_registerForm.getString("times"));
      TStudent tStudent = new TStudent();
      tStudent.setName(strname);
      tStudent.setEmail(stremail);
      //set the subject
      TSubjects Tsubjects = new TSubjects();
      Tsubjects.setTStudent(tStudent);
      Tsubjects.setName(strname);
      tStudent.getTSubjectses().add(Tsubjects);
      //set the test
      TTest Ttest = new TTest();
      Ttest.setTStudent(tStudent);
      Ttest.setMonth(intmonth);
      Ttest.setTimes(inttimes);
      tStudent.getTTests().add(Ttest);
      //insert all
      tstudentDAO.insert(tStudent);
      return mapping.findForward("ok");
     }

     tstudentDAO只有一個操作:
    session.save(tStudent);

    之后可以看到3個表里的記錄都同時增加好了。

    posted on 2008-06-22 23:42 lzj520 閱讀(900) 評論(0)  編輯  收藏 所屬分類: 個人學習日記Hibernate
    主站蜘蛛池模板: 亚洲爽爽一区二区三区| 国产av无码专区亚洲av桃花庵 | wwwxxx亚洲| 国产三级免费电影| 国内少妇偷人精品视频免费| 亚洲精品国产福利在线观看| 午夜小视频免费观看| 中文字幕免费在线视频| 亚洲中文字幕人成乱码 | 亚洲综合自拍成人| 午夜私人影院免费体验区| 久久久WWW成人免费精品| 亚洲人成人77777网站不卡| 亚洲阿v天堂在线2017免费| 84pao国产成视频免费播放| 国产亚洲精品美女| 老汉色老汉首页a亚洲| 吃奶摸下高潮60分钟免费视频| 亚洲免费精彩视频在线观看| 亚洲av无码无线在线观看| 久久精品国产亚洲AV无码娇色 | 国产在线观看麻豆91精品免费| 九九九国产精品成人免费视频| 亚洲小说区图片区| 亚洲片国产一区一级在线观看| 免费观看无遮挡www的视频| 一级做a爰片性色毛片免费网站| 亚洲免费二区三区| 亚洲精品无码久久久久sm| 国产精品四虎在线观看免费| 亚洲国产精品免费在线观看| 国产精品美女久久久免费 | 亚洲av麻豆aⅴ无码电影| 99久久99久久精品免费看蜜桃 | 久久国产免费观看精品3| 日韩毛片免费一二三| 亚洲乱码在线观看| 久久亚洲精品无码aⅴ大香| 国产精品亚洲产品一区二区三区| 无人在线观看免费高清视频| 91福利免费视频|