真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么直接使用Hibernate

這篇文章主要為大家展示了“怎么直接使用Hibernate”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么直接使用Hibernate”這篇文章吧。

在德清等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,德清網(wǎng)站建設(shè)費(fèi)用合理。

在直接使用Hibernate時(shí),要在事務(wù)結(jié)束的時(shí)候,寫(xiě)上一句:tx.commit(),這個(gè)commit()的源碼為:

public void commit() throws HibernateException {  if (!begun) {  throw new TransactionException("Transaction not successfully started");  }   log.debug("commit");   if (!transactionContext.isFlushModeNever() && callback) {  transactionContext.managedFlush(); // if an exception occurs during  // flush, user must call  // rollback()  }   notifyLocalSynchsBeforeTransactionCompletion();  if (callback) {  jdbcContext.beforeTransactionCompletion(this);  }   try {  commitAndResetAutoCommit();//重點(diǎn)代碼,它的作用是提交事務(wù),并把connection的autocommit屬性恢復(fù)為true  log.debug("committed JDBC Connection");  committed = true;  if (callback) {  jdbcContext.afterTransactionCompletion(true, this);  }  notifyLocalSynchsAfterTransactionCompletion(Status.STATUS_COMMITTED);  } catch (SQLException e) {  log.error("JDBC commit failed", e);  commitFailed = true;  if (callback) {  jdbcContext.afterTransactionCompletion(false, this);  }  notifyLocalSynchsAfterTransactionCompletion(Status.STATUS_UNKNOWN);  throw new TransactionException("JDBC commit failed", e);  } finally {  closeIfRequired();  }  }

上面代碼中,commitAndResetAutoCommit()方法的源碼如下:

private void commitAndResetAutoCommit() throws SQLException {  try {  jdbcContext.connection().commit();  //這段不用說(shuō)也能理解了  } finally {  toggleAutoCommit();  //這段的作用是恢復(fù)connection的autocommit屬性為true  }  }

上述代碼的toggleAutoCommit()源代碼如下:

private void toggleAutoCommit() {  try {  if (toggleAutoCommit) {  log.debug("re-enabling autocommit");  jdbcContext.connection().setAutoCommit(true);  //這行代碼的意義很明白了吧  }  } catch (Exception sqle) {  log.error("Could not toggle autocommit", sqle);  }  }

因此,如果你是直接使用Hibernate,并手動(dòng)管理它的session,并手動(dòng)開(kāi)啟事務(wù)關(guān)閉事務(wù)的話,完全可以保證你的事務(wù)(好像完全是廢話)。

以上是“怎么直接使用Hibernate”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞標(biāo)題:怎么直接使用Hibernate
網(wǎng)站地址:http://weahome.cn/article/jppdgj.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部