<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 閱讀(898) 評論(0)  編輯  收藏 所屬分類: 個人學習日記Hibernate
    主站蜘蛛池模板: 99久久免费精品国产72精品九九| 久久国产精品免费网站| 成人毛片18岁女人毛片免费看| 亚洲美女视频网址| 亚洲成年人免费网站| 亚洲视频国产视频| 69pao强力打造免费高清| 亚洲视频免费播放| 无码一区二区三区AV免费| ww亚洲ww在线观看国产| 色妞WWW精品免费视频| 亚洲精品国产精品| 国产做床爱无遮挡免费视频| 国产精品亚洲а∨无码播放麻豆| 亚洲电影日韩精品| 国产免费黄色无码视频| 亚洲va国产va天堂va久久| 日本在线看片免费人成视频1000| 亚洲国产精品热久久| 91精品免费国产高清在线| 亚洲欧美日韩中文字幕在线一区| 国产精品99久久免费| 一级毛片免费不卡| 亚洲一区二区三区首页| 成人免费黄色网址| 精品久久久久久亚洲中文字幕| 亚洲国产成人久久笫一页| 好紧我太爽了视频免费国产| 亚洲第一区视频在线观看| 免费看美女让人桶尿口| 一级人做人a爰免费视频 | 免费无码一区二区三区蜜桃大| 黄色一级毛片免费看| 国产av天堂亚洲国产av天堂| 免费观看美女用震蛋喷水的视频| 色偷偷亚洲第一综合| 亚洲中文字幕无码一区| 18国产精品白浆在线观看免费 | 破了亲妺妺的处免费视频国产 | 亚洲一区在线免费观看| 免费99热在线观看|