貌似大家用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
          主站蜘蛛池模板: 丹凤县| 华亭县| 东辽县| 韶关市| 西乌| 阳春市| 吉木萨尔县| 砚山县| 高密市| 五指山市| 白沙| 赤峰市| 济阳县| 永新县| 喀什市| 正定县| 方山县| 克什克腾旗| 班玛县| 吴堡县| 信阳市| 句容市| 乌恰县| 华容县| 永嘉县| 轮台县| 巴青县| 即墨市| 弥渡县| 大安市| 江北区| 广平县| 大邑县| 大洼县| 郴州市| 辰溪县| 江油市| 比如县| 泸西县| 昭平县| 子长县|