⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manipulatingdata.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 5 页
字号:
                </p></li></ul></div></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-update-lock"></a>9.4.3.&nbsp;&#25226;&#19982;Session&#33073;&#31163;&#30340;&#23545;&#35937;&#37325;&#26032;&#32465;&#23450;</h3></div></div><div></div></div><p>            <tt class="literal">lock()</tt>&#26041;&#27861;&#26159;&#29992;&#26469;&#35753;&#24212;&#29992;&#31243;&#24207;&#25226;&#19968;&#20010;&#26410;&#20462;&#25913;&#30340;&#23545;&#35937;&#37325;&#26032;&#20851;&#32852;&#21040;&#26032;session&#30340;&#26041;&#27861;&#12290;        </p><pre class="programlisting">//just reassociate: &#30452;&#25509;&#37325;&#26032;&#20851;&#32852;sess.lock(fritz, LockMode.NONE);//do a version check, then reassociate:  &#36827;&#34892;&#29256;&#26412;&#26816;&#26597;&#21518;&#20851;&#32852;sess.lock(izi, LockMode.READ);//do a version check, using SELECT ... FOR UPDATE, then reassociate: &#20351;&#29992;SELECT ... FOR UPDATE&#36827;&#34892;&#29256;&#26412;&#26816;&#26597;&#21518;&#20851;&#32852;sess.lock(pk, LockMode.UPGRADE);</pre></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-deleting"></a>9.5.&nbsp;&#21024;&#38500;&#25345;&#20037;&#21270;&#23545;&#35937;</h2></div></div><div></div></div><p>            &#20351;&#29992;<tt class="literal">Session.delete()</tt>&#20250;&#25226;&#23545;&#35937;&#30340;&#29366;&#24577;&#20174;&#25968;&#25454;&#24211;&#20013;&#31227;&#38500;&#12290;&#24403;&#28982;&#65292;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#21487;&#33021;&#20173;&#28982;&#25345;&#26377;&#19968;&#20010;&#25351;&#21521;&#23427;&#30340;&#24341;&#29992;&#12290;&#25152;&#20197;&#65292;&#26368;&#22909;&#36825;&#26679;&#29702;&#35299;&#65306;<tt class="literal">delete()</tt>&#30340;&#29992;&#36884;&#26159;&#25226;&#19968;&#20010;&#25345;&#20037;&#21270;&#23454;&#20363;&#21464;&#25104;&#20020;&#26102;&#23454;&#20363;&#12290;        </p><pre class="programlisting">sess.delete(cat);</pre><p>            &#20320;&#21487;&#20197;&#36890;&#36807;&#20256;&#36882;&#32473;<tt class="literal">delete()</tt>&#19968;&#20010;Hibernate &#26597;&#35810;&#23383;&#31526;&#20018;&#26469;&#19968;&#27425;&#24615;&#21024;&#38500;&#24456;&#22810;&#23545;&#35937;&#12290;        </p><p>            &#20320;&#29616;&#22312;&#21487;&#20197;&#29992;&#20320;&#21916;&#27426;&#30340;&#20219;&#20309;&#39034;&#24207;&#21024;&#38500;&#23545;&#35937;&#65292;&#19981;&#29992;&#25285;&#24515;&#22806;&#38190;&#32422;&#26463;&#20914;&#31361;&#12290;&#24403;&#28982;&#65292;&#22914;&#26524;&#20320;&#25630;&#38169;&#20102;&#39034;&#24207;&#65292;&#36824;&#26159;&#26377;&#21487;&#33021;&#24341;&#21457;&#22312;&#22806;&#38190;&#23383;&#27573;&#23450;&#20041;&#30340;<tt class="literal">NOT NULL</tt>&#32422;&#26463;&#20914;&#31361;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-flushing"></a>9.6.&nbsp;&#21516;&#27493;&#65288;Flush&#65289;</h2></div></div><div></div></div><p>            &#27599;&#20214;&#38548;&#19968;&#27573;&#26102;&#38388;&#65292;<tt class="literal">Session</tt>&#20250;&#25191;&#34892;&#19968;&#20123;&#24517;&#38656;&#30340;SQL&#35821;&#21477;&#26469;&#25226;&#20869;&#23384;&#20013;&#30340;&#23545;&#35937;&#21644;JDBC&#36830;&#25509;&#20013;&#30340;&#29366;&#24577;&#36827;&#34892;&#21516;&#27493;&#26356;&#26032;&#12290;&#36825;&#20010;&#36807;&#31243;&#34987;&#31216;&#20026;<span class="emphasis"><em>&#21516;&#27493;(flush)</em></span>&#65292;&#40664;&#35748;&#20250;&#22312;&#19979;&#38754;&#30340;&#26102;&#38388;&#28857;&#25191;&#34892;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#22312;&#26576;&#20123;<tt class="literal">find()</tt>&#25110;&#32773;<tt class="literal">iterate()</tt>&#35843;&#29992;&#30340;&#26102;&#20505;                </p></li><li><p>                    &#22312;<tt class="literal">net.sf.hibernate.Transaction.commit()</tt>&#30340;&#26102;&#20505;                </p></li><li><p>                    &#22312;<tt class="literal">Session.flush()</tt>&#30340;&#26102;&#20505;                </p></li></ul></div><p>            &#28041;&#21450;&#30340;SQL&#35821;&#21477;&#20250;&#25353;&#29031;&#19979;&#38754;&#30340;&#39034;&#24207;&#23433;&#25490;&#65306;        </p><div class="orderedlist"><ol type="1" compact><li><p>                    &#25152;&#26377;&#23545;&#23454;&#20307;&#36827;&#34892;&#25554;&#20837;&#30340;&#35821;&#21477;&#65292;&#20854;&#39034;&#24207;&#25353;&#29031;&#23545;&#35937;&#25191;&#34892;<tt class="literal">Session.save()</tt>&#30340;&#26102;&#38388;&#39034;&#24207;                </p></li><li><p>                    &#25152;&#26377;&#23545;&#23454;&#20307;&#36827;&#34892;&#26356;&#26032;&#30340;&#35821;&#21477;                </p></li><li><p>                    &#25152;&#26377;&#36827;&#34892;&#38598;&#21512;&#21024;&#38500;&#30340;&#35821;&#21477;                </p></li><li><p>                    &#25152;&#26377;&#23545;&#38598;&#21512;&#20803;&#32032;&#36827;&#34892;&#21024;&#38500;&#65292;&#26356;&#26032;&#25110;&#32773;&#25554;&#20837;&#30340;&#35821;&#21477;                </p></li><li><p>                    &#25152;&#26377;&#36827;&#34892;&#38598;&#21512;&#25554;&#20837;&#30340;&#35821;&#21477;                </p></li><li><p>                    &#25152;&#26377;&#23545;&#23454;&#20307;&#36827;&#34892;&#21024;&#38500;&#30340;&#35821;&#21477;&#65292;&#20854;&#39034;&#24207;&#25353;&#29031;&#23545;&#35937;&#25191;&#34892;<tt class="literal">Session.delete()</tt>&#30340;&#26102;&#38388;&#39034;&#24207;                </p></li></ol></div><p>            &#65288;&#26377;&#19968;&#20010;&#20363;&#22806;&#26102;&#65292;&#22914;&#26524;&#23545;&#35937;&#20351;&#29992;<tt class="literal">native</tt>&#26041;&#24335;&#36827;&#34892; ID &#29983;&#25104;&#30340;&#35805;&#65292;&#23427;&#20204;&#19968;&#25191;&#34892;save&#23601;&#20250;&#34987;&#25554;&#20837;&#12290;&#65289;        </p><p>            &#38500;&#38750;&#20320;&#26126;&#30830;&#22320;&#21457;&#20986;&#20102;<tt class="literal">flush()</tt>&#25351;&#20196;&#65292;&#20851;&#20110;Session<span class="emphasis"><em>&#21512;&#26102;</em></span>&#20250;&#25191;&#34892;&#36825;&#20123;JDBC&#35843;&#29992;&#26159;&#23436;&#20840;&#26080;&#27861;&#20445;&#35777;&#30340;&#65292;&#21482;&#33021;&#20445;&#35777;&#23427;&#20204;&#25191;&#34892;&#30340;&#21069;&#21518;&#39034;&#24207;&#12290;&#24403;&#28982;&#65292;Hibernate&#20445;&#35777;&#65292;<tt class="literal">Session.find(..)</tt>&#32477;&#23545;&#19981;&#20250;&#36820;&#22238;&#24050;&#32463;&#22833;&#25928;&#30340;&#25968;&#25454;&#65292;&#20063;&#19981;&#20250;&#36820;&#22238;&#38169;&#35823;&#25968;&#25454;&#12290;        </p><p>            &#20063;&#21487;&#20197;&#25913;&#21464;&#40664;&#35748;&#30340;&#35774;&#32622;&#65292;&#26469;&#35753;&#21516;&#27493;&#21457;&#29983;&#30340;&#19981;&#37027;&#20040;&#39057;&#32321;&#12290;<tt class="literal">FlushMode</tt>&#31867;&#23450;&#20041;&#20102;&#19977;&#31181;&#19981;&#21516;&#30340;&#26041;&#24335;&#12290;&#22823;&#37096;&#20998;&#24773;&#20917;&#19979;&#65292;&#23427;&#20204;&#21482;&#30001;&#24403;&#20320;&#22312;&#22788;&#29702;&#8220;&#21482;&#35835;&#8221;&#30340;&#20107;&#21153;&#26102;&#25165;&#20250;&#20351;&#29992;&#65292;&#21487;&#33021;&#20250;&#24471;&#21040;&#19968;&#20123;&#65288;&#19981;&#26159;&#37027;&#20040;&#26126;&#26174;&#30340;&#65289;&#24615;&#33021;&#25552;&#39640;&#12290;        </p><pre class="programlisting">sess = sf.openSession();Transaction tx = sess.beginTransaction();sess.setFlushMode(FlushMode.COMMIT); //allow queries to return stale stateCat izi = (Cat) sess.load(Cat.class, id);izi.setName(iznizi);// execute some queries....sess.find("from Cat as cat left outer join cat.kittens kitten");//change to izi is not flushed!...tx.commit(); //flush occurs</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manipulatingdata-endingsession"></a>9.7.&nbsp;&#32467;&#26463;&#19968;&#20010;Session</h2></div></div><div></div></div><p>            &#32467;&#26463;&#19968;&#20010;session&#21253;&#25324;&#22235;&#20010;&#29420;&#31435;&#30340;&#27493;&#39588;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#28165;&#27927;session                </p></li><li><p>                    &#25552;&#20132;&#20107;&#21153;                </p></li><li><p>                    &#20851;&#38381;session                </p></li><li><p>                    &#22788;&#29702;&#24322;&#24120;                </p></li></ul></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-endingsession-flushing"></a>9.7.1.&nbsp;&#21516;&#27493;(Flush) Session</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#27491;&#22312;&#20351;&#29992;<tt class="literal">Transaction</tt>API&#65292;&#20320;&#23601;&#19981;&#29992;&#25285;&#24515;&#36825;&#20010;&#27493;&#39588;&#12290;&#22312;&#20107;&#21153;&#25552;&#20132;&#30340;&#26102;&#20505;&#65292;&#38544;&#21547;&#23601;&#20250;&#21253;&#25324;&#36825;&#19968;&#27493;&#12290;&#21542;&#21017;&#65292;&#20320;&#24212;&#35813;&#35843;&#29992;<tt class="literal">Session.flush()</tt>&#26469;&#30830;&#20445;&#20320;&#25152;&#26377;&#30340;&#20462;&#25913;&#37117;&#19982;&#25968;&#25454;&#24211;&#21516;&#27493;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-endingsession-commit"></a>9.7.2.&nbsp;&#25552;&#20132;&#25968;&#25454;&#24211;&#20107;&#21153;</h3></div></div><div></div></div><p>                &#22914;&#26524;&#20320;&#27491;&#22312;&#20351;&#29992;Hibernate &#30340;<tt class="literal">Transaction</tt> API,&#20195;&#30721;&#31867;&#20284;&#36825;&#26679;&#65306;            </p><pre class="programlisting">tx.commit(); // flush the Session and commit the transaction</pre><p>                &#22914;&#26524;&#20320;&#33258;&#34892;&#31649;&#29702;JDBC&#20107;&#21153;&#65292;&#20320;&#24212;&#35813;&#25163;&#24037;&#23545;JDBC &#36830;&#25509;&#25191;&#34892;<tt class="literal">commit()</tt>&#12290;            </p><pre class="programlisting">sess.flush();sess.connection().commit();  // not necessary for JTA datasource</pre><p>                &#22914;&#26524;&#20320;&#20915;&#23450;<span class="emphasis"><em>&#19981;</em></span>&#25552;&#20132;&#20320;&#30340;&#26356;&#25913;&#65306;            </p><pre class="programlisting">tx.rollback();  // rollback the transaction</pre><p>                &#25110;&#32773;:            </p><pre class="programlisting">// not necessary for JTA datasource, important otherwisesess.connection().rollback();</pre><p>                &#22914;&#26524;&#20320;&#22238;&#28378;&#20102;&#20107;&#21153;,&#20320;&#24212;&#35813;&#31435;&#21363;&#20851;&#38381;&#21644;&#21462;&#28040;&#24403;&#21069;session,&#30830;&#20445;Hibernate&#20869;&#37096;&#29366;&#24577;&#30340;&#23436;&#25972;&#24615;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-endingsession-close"></a>9.7.3.&nbsp;&#20851;&#38381;Session</h3></div></div><div></div></div><p>                &#35843;&#29992;<tt class="literal">Session.close()</tt>&#23601;&#26631;&#24535;&#36825;&#20010;session&#36827;&#20837;&#20102;&#23614;&#22768;&#12290;<tt class="literal">close()</tt>&#20027;&#35201;&#30340;&#21547;&#20041;&#23601;&#26159;&#19982;&#36825;&#20010;session&#30456;&#20851;&#30340;JDBC&#36830;&#25509;&#20250;&#34987;&#25918;&#24323;&#12290;            </p><pre class="programlisting">tx.commit();sess.close();</pre><pre class="programlisting">sess.flush();sess.connection().commit();  // not necessary for JTA datasourcesess.close();</pre><p>                &#22914;&#26524;&#20320;&#33258;&#34892;&#31649;&#29702;&#36830;&#25509;&#65292;<tt class="literal">close()</tt>&#20250;&#36820;&#22238;&#36830;&#25509;&#30340;&#19968;&#20010;&#24341;&#29992;&#65292;&#20320;&#23601;&#21487;&#20197;&#25163;&#24037;&#25226;&#23427;&#20851;&#38381;&#65292;&#25110;&#32773;&#36820;&#22238;&#23427;&#21040;&#36830;&#25509;&#27744;&#21435;&#12290;&#20854;&#20182;&#24773;&#20917;&#19979;&#65292;<tt class="literal">close()</tt>&#20250;&#25226;&#23427;&#36820;&#22238;&#21040;&#36830;&#25509;&#27744;&#21435;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="manipulatingdata-endingsession-exceptions"></a>9.7.4.&nbsp;&#22788;&#29702;&#24322;&#24120;</h3></div></div><div></div></div><p>                &#22914;&#26524;<tt class="literal">Session</tt>&#25243;&#20986;&#20102;&#19968;&#20010;exception(&#21253;&#25324;&#20219;&#20309;<tt class="literal">SQLException</tt>),&#20320;&#24212;&#35813;&#31435;&#21051;&#22238;&#28378;&#36825;&#20010;&#20107;&#21153;&#65292;&#35843;&#29992;<tt class="literal">Session.close)()</tt>&#26469;&#21462;&#28040;&#36825;&#20010;<tt class="literal">Session</tt>&#23454;&#20363;&#12290;<tt class="literal">Session</tt>&#20013;&#30340;&#19968;&#20123;&#29305;&#23450;&#26041;&#24335;&#20250;&#30830;&#20445;session<span class="emphasis"><em>&#19981;&#20250;</em></span>&#22788;&#20110;&#19968;&#20010;&#19981;&#31283;&#23450;&#19981;&#23436;&#25972;&#30340;&#29366;&#24577;&#12290;            </p><p>                &#24314;&#35758;&#37319;&#29992;&#19979;&#38754;&#30340;&#24322;&#24120;&#22788;&#29702;&#29255;&#26029;&#65306;            </p><pre class="programlisting">Session sess = factory.openSession();Transaction tx = null;try {    tx = sess.beginTransaction();    // do some work    ...    tx.commit();}catch (Exception e) {    if (tx!=null) tx.rollback();    throw e;}finally {    sess.close();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -