貌似大家用hibernate連接的大都是Oracle數(shù)據(jù)庫。
          今天偶用hibernate連MySql時發(fā)現(xiàn)一個問題:
          數(shù)據(jù)無法提交到對應(yīng)的表中,且不報(bào)錯,使我有種每次重啟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 閱讀(356) 評論(0)  編輯  收藏 所屬分類: SSH
          主站蜘蛛池模板: 滨州市| 绵竹市| 嘉兴市| 博白县| 潮安县| 普兰店市| 收藏| 卓尼县| 镇平县| 噶尔县| 靖州| 九江县| 平昌县| 灌阳县| 新河县| 东台市| 芜湖县| 扬州市| 杭州市| 永和县| 武义县| 平山县| 晋城| 神池县| 横山县| 夏邑县| 繁峙县| 西畴县| 江都市| 夹江县| 南召县| 赤城县| 惠东县| 承德市| 黄山市| 雅安市| 两当县| 平泉县| 云霄县| 大渡口区| 抚顺县|