貌似大家用hibernate連接的大都是Oracle數(shù)據(jù)庫。
          今天偶用hibernate連MySql時發(fā)現(xiàn)一個問題:
          數(shù)據(jù)無法提交到對應(yīng)的表中,且不報錯,使我有種每次重啟tomcat就重建表的錯覺。
          從而把過錯歸咎于
          <property name="hbm2ddl.auto">create</property>
          經(jīng)過測試發(fā)現(xiàn),我的方向錯了。

          原本,我的dao是這樣寫的:(以add為例)
          /**
               * 向數(shù)據(jù)庫中添加數(shù)據(jù)
               * 
               * 
          @param t
               
          */
              
          public void add(T t) {
                  logger.info(
          "向數(shù)據(jù)庫添加" + t);

                  Session session 
          = HibernateUtil.getSession();

                  session.save(t);
                  session.flush();

                  HibernateUtil.closeSession(session);
              }

          后來和老師朋友們交流才知道,原來MySql是不能自動提交的,所以我的數(shù)據(jù)只是插入到緩存里,沒到數(shù)據(jù)庫里。
          現(xiàn)將此方法改為如下形式便好了:
              /**
               * 向數(shù)據(jù)庫中添加數(shù)據(jù)
               * 
               * 
          @param t
               
          */
              
          public void add(T t) {
                  logger.info(
          "向數(shù)據(jù)庫添加" + t);

                  Session session 
          = HibernateUtil.getSession();
                  Transaction ts
          =session.beginTransaction();
                  session.save(t);
                  session.flush();
                  ts.commit();
                  HibernateUtil.closeSession(session);
              }


          posted on 2010-01-14 19:08 Ying-er 閱讀(360) 評論(0)  編輯  收藏 所屬分類: SSH
          主站蜘蛛池模板: 岚皋县| 睢宁县| 马鞍山市| 万山特区| 板桥市| 娄烦县| 芦山县| 河津市| 唐河县| 河曲县| 孙吴县| 常州市| 满城县| 隆尧县| 景宁| 高阳县| 军事| 岐山县| 比如县| 柳州市| 来安县| 黑龙江省| 稷山县| 文化| 岑溪市| 招远市| 佛学| 金乡县| 屏南县| 丹东市| 田林县| 岳普湖县| 高要市| 吴桥县| 平度市| 青神县| 天津市| 福清市| 石门县| 贵德县| 教育|