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

📄 batch.html

📁 hibernate的中文教程,html形式,方便了初学者可以任意copy代码,完成知识点的学习
💻 HTML
📖 第 1 页 / 共 2 页
字号:
            &#23601;&#20687;&#24050;&#32463;&#35752;&#35770;&#30340;&#37027;&#26679;&#65292;&#33258;&#21160;&#21644;&#36879;&#26126;&#30340; &#23545;&#35937;/&#20851;&#31995; &#26144;&#23556;&#65288;object/relational mapping&#65289;&#20851;&#27880;&#20110;&#31649;&#29702;&#23545;&#35937;&#30340;&#29366;&#24577;&#12290;            &#36825;&#23601;&#24847;&#21619;&#30528;&#23545;&#35937;&#30340;&#29366;&#24577;&#23384;&#22312;&#20110;&#20869;&#23384;&#65292;&#22240;&#27492;&#30452;&#25509;&#25805;&#20316; (&#20351;&#29992; SQL <tt class="literal">Data Manipulation Language</tt>(DML,&#25968;&#25454;&#25805;&#20316;&#35821;&#35328;&#65289;&#35821;&#21477; &#65306;<tt class="literal">INSERT</tt> ,<tt class="literal">UPDATE</tt> &#21644;            <tt class="literal">DELETE</tt>) &#25968;&#25454;&#24211;&#20013;&#30340;&#25968;&#25454;&#23558;&#19981;&#20250;&#24433;&#21709;&#20869;&#23384;&#20013;&#30340;&#23545;&#35937;&#29366;&#24577;&#21644;&#23545;&#35937;&#25968;&#25454;&#12290;            &#19981;&#36807;&#65292;Hibernate&#25552;&#20379;&#36890;&#36807;Hibernate&#26597;&#35810;&#35821;&#35328;&#65288;<a href="queryhql.html" title="&#31532;&nbsp;14&nbsp;&#31456;&nbsp;HQL: Hibernate&#26597;&#35810;&#35821;&#35328;">&#31532;&nbsp;14&nbsp;&#31456; <i>HQL: Hibernate&#26597;&#35810;&#35821;&#35328;</i></a>&#65289;&#26469;&#25191;&#34892;&#22823;&#25209;            &#37327;SQL&#39118;&#26684;&#30340;DML&#35821;&#21477;&#30340;&#26041;&#27861;&#12290;        </p><p>            <tt class="literal">UPDATE</tt> &#21644; <tt class="literal">DELETE</tt>&#35821;&#21477;&#30340;&#35821;&#27861;&#20026;&#65306;            <tt class="literal">( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</tt>            &#26377;&#20960;&#28857;&#35828;&#26126;&#65306;        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#22312;FROM&#23376;&#21477;&#65288;from-clause&#65289;&#20013;&#65292;FROM&#20851;&#38190;&#23383;&#26159;&#21487;&#36873;&#30340;                </p></li><li><p>                    &#22312;FROM&#23376;&#21477;&#65288;from-clause&#65289;&#20013;&#21482;&#33021;&#26377;&#19968;&#20010;&#23454;&#20307;&#21517;&#65292;&#23427;&#21487;&#20197;&#26159;&#21035;&#21517;&#12290;&#22914;&#26524;&#23454;&#20307;&#21517;&#26159;&#21035;&#21517;&#65292;&#37027;&#20040;&#20219;&#20309;&#34987;&#24341;&#29992;&#30340;&#23646;&#24615;&#37117;&#24517;&#39035;&#21152;&#19978;&#27492;&#21035;&#21517;&#30340;&#21069;&#32512;&#65307;&#22914;&#26524;&#19981;&#26159;&#21035;&#21517;&#65292;&#37027;&#20040;&#20219;&#20309;&#26377;&#21069;&#32512;&#30340;&#23646;&#24615;&#24341;&#29992;&#37117;&#26159;&#38750;&#27861;&#30340;&#12290;                </p></li><li><p>                    &#19981;&#33021;&#22312;&#22823;&#25209;&#37327;HQL&#35821;&#21477;&#20013;&#20351;&#29992;<a href="queryhql.html#queryhql-joins-forms" title="14.4.&nbsp;join &#35821;&#27861;&#30340;&#24418;&#24335;">&#31532;&nbsp;14.4&nbsp;&#33410; &#8220;join &#35821;&#27861;&#30340;&#24418;&#24335;&#8221;</a>&#65288;&#26174;&#24335;&#25110;&#32773;&#38544;&#24335;&#30340;&#37117;&#19981;&#34892;&#65289;&#12290;&#19981;&#36807;&#22312;WHERE&#23376;&#21477;&#20013;&#21487;&#20197;&#20351;&#29992;&#23376;&#26597;&#35810;&#12290;&#21487;&#20197;&#22312;where&#23376;&#21477;&#20013;&#20351;&#29992;&#23376;&#26597;&#35810;&#65292;&#23376;&#26597;&#35810;&#26412;&#36523;&#21487;&#20197;&#21253;&#21547;join&#12290;                </p></li><li><p>                       &#25972;&#20010;WHERE&#23376;&#21477;&#26159;&#21487;&#36873;&#30340;&#12290;                </p></li></ul></div><p>            &#20030;&#20010;&#20363;&#23376;&#65292;&#20351;&#29992;<tt class="literal">Query.executeUpdate()</tt>&#26041;&#27861;&#25191;&#34892;&#19968;&#20010;HQL            <tt class="literal">UPDATE</tt>&#35821;&#21477;(&#65306;             (&#26041;&#27861;&#21629;&#21517;&#26159;&#26469;&#28304;&#20110;JDBC's <tt class="literal">PreparedStatement.executeUpdate()</tt>):        </p><pre class="programlisting">Session session = sessionFactory.openSession();		Transaction tx = session.beginTransaction();		String hqlUpdate = "update Customer c set c.name = :newName where c.name = :oldName";		// or String hqlUpdate = "update Customer set name = :newName where name = :oldName";		int updatedEntities = s.createQuery( hqlUpdate )		        .setString( "newName", newName )		        .setString( "oldName", oldName )		        .executeUpdate();		tx.commit();		session.close();</pre><p>            HQL <tt class="literal">UPDATE</tt>&#35821;&#21477;&#65292;&#40664;&#35748;&#19981;&#20250;&#24433;&#21709;&#26356;&#26032;&#23454;&#20307;&#30340;<a href="mapping.html#mapping-declaration-version" title="5.1.7.&nbsp;&#29256;&#26412;&#65288;version&#65289;(&#21487;&#36873;)">&#31532;&nbsp;5.1.7&nbsp;&#33410; &#8220;&#29256;&#26412;&#65288;version&#65289;(&#21487;&#36873;)&#8221;</a>&#25110;&#32773;<a href="mapping.html#mapping-declaration-timestamp" title="5.1.8.&nbsp;timestamp (&#21487;&#36873;)">&#31532;&nbsp;5.1.8&nbsp;&#33410; &#8220;timestamp (&#21487;&#36873;)&#8221;</a>&#23646;&#24615;&#20540;&#12290;&#36825;&#21644;EJB3&#35268;&#33539;&#26159;&#19968;&#33268;&#30340;&#12290;&#20294;&#26159;&#65292;&#36890;&#36807;&#20351;&#29992;<tt class="literal">versioned update</tt>&#65292;&#20320;&#21487;&#20197;&#24378;&#21046;Hibernate&#27491;&#30830;&#30340;&#37325;&#32622;<tt class="literal">version</tt>&#25110;&#32773;<tt class="literal">timestamp</tt>&#23646;&#24615;&#20540;&#12290;&#36825;&#36890;&#36807;&#22312;<tt class="literal">UPDATE</tt>&#20851;&#38190;&#23383;&#21518;&#38754;&#22686;&#21152;<tt class="literal">VERSIONED</tt>&#20851;&#38190;&#23383;&#26469;&#23454;&#29616;&#30340;&#12290;        </p><pre class="programlisting">Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();String hqlVersionedUpdate = "update versioned Customer set name = :newName where name = :oldName";int updatedEntities = s.createQuery( hqlUpdate )        .setString( "newName", newName )        .setString( "oldName", oldName )        .executeUpdate();tx.commit();session.close();</pre><p>            &#27880;&#24847;&#65292;&#33258;&#23450;&#20041;&#30340;&#29256;&#26412;&#31867;&#22411;(<tt class="literal">org.hibernate.usertype.UserVersionType</tt>)&#19981;&#20801;&#35768;&#21644;<tt class="literal">update versioned</tt>&#35821;&#21477;&#32852;&#29992;&#12290;        </p><p>            &#25191;&#34892;&#19968;&#20010;HQL <tt class="literal">DELETE</tt>&#65292;&#21516;&#26679;&#20351;&#29992; <tt class="literal">Query.executeUpdate()</tt> &#26041;&#27861;:        </p><pre class="programlisting">Session session = sessionFactory.openSession();		Transaction tx = session.beginTransaction();		String hqlDelete = "delete Customer c where c.name = :oldName";		// or String hqlDelete = "delete Customer where name = :oldName";		int deletedEntities = s.createQuery( hqlDelete )		        .setString( "oldName", oldName )		        .executeUpdate();		tx.commit();		session.close();</pre><p>            &#30001;<tt class="literal">Query.executeUpdate()</tt>&#26041;&#27861;&#36820;&#22238;&#30340;<tt class="literal">&#25972;&#22411;</tt>&#20540;&#34920;&#26126;&#20102;&#21463;&#27492;&#25805;&#20316;&#24433;&#21709;&#30340;&#35760;&#24405;&#25968;&#37327;&#12290;            &#27880;&#24847;&#36825;&#20010;&#25968;&#20540;&#21487;&#33021;&#19982;&#25968;&#25454;&#24211;&#20013;&#34987;&#65288;&#26368;&#21518;&#19968;&#26465;SQL&#35821;&#21477;&#65289;&#24433;&#21709;&#20102;&#30340;&#8220;&#34892;&#8221;&#25968;&#26377;&#20851;&#65292;&#20063;&#21487;&#33021;&#27809;&#26377;&#12290;&#19968;&#20010;&#22823;&#25209;&#37327;HQL&#25805;&#20316;&#21487;&#33021;&#23548;&#33268;&#22810;&#26465;&#23454;&#38469;&#30340;SQL&#35821;&#21477;&#34987;&#25191;&#34892;&#65292;            &#20030;&#20010;&#20363;&#23376;&#65292;&#23545;joined-subclass&#26144;&#23556;&#26041;&#24335;&#30340;&#31867;&#36827;&#34892;&#30340;&#27492;&#31867;&#25805;&#20316;&#12290;&#36825;&#20010;&#36820;&#22238;&#20540;&#20195;&#34920;&#20102;&#23454;&#38469;&#34987;&#35821;&#21477;&#24433;&#21709;&#20102;&#30340;&#35760;&#24405;&#25968;&#37327;&#12290;&#22312;&#37027;&#20010;joined-subclass&#30340;&#20363;&#23376;&#20013;&#65292;            &#23545;&#19968;&#20010;&#23376;&#31867;&#30340;&#21024;&#38500;&#23454;&#38469;&#19978;&#21487;&#33021;&#19981;&#20165;&#20165;&#20250;&#21024;&#38500;&#23376;&#31867;&#26144;&#23556;&#21040;&#30340;&#34920;&#32780;&#19988;&#20250;&#24433;&#21709;&#8220;&#26681;&#8221;&#34920;&#65292;&#36824;&#26377;&#21487;&#33021;&#24433;&#21709;&#19982;&#20043;&#26377;&#32487;&#25215;&#20851;&#31995;&#30340;joined-subclass&#26144;&#23556;&#26041;&#24335;&#30340;&#23376;&#31867;&#30340;&#34920;&#12290;        </p><p>            <tt class="literal">INSERT</tt>&#35821;&#21477;&#30340;&#20266;&#30721;&#26159;:            <tt class="literal">INSERT INTO EntityName properties_list select_statement</tt>.              &#35201;&#27880;&#24847;&#30340;&#26159;:        </p><div class="itemizedlist"><ul type="disc" compact><li><p>                    &#21482;&#25903;&#25345;INSERT INTO ... SELECT ...&#24418;&#24335;,&#19981;&#25903;&#25345;INSERT INTO ... VALUES ...&#24418;&#24335;.                </p><p>                    properties_list&#21644;SQL <tt class="literal">INSERT</tt>&#35821;&#21477;&#20013;&#30340;<tt class="literal">&#23383;&#27573;&#23450;&#20041;(column speficiation)</tt>&#31867;&#20284;&#12290;&#23545;&#21442;&#19982;&#32487;&#25215;&#26641;&#26144;&#23556;&#30340;&#23454;&#20307;&#32780;&#35328;&#65292;&#21482;&#26377;&#30452;&#25509;&#23450;&#20041;&#22312;&#32473;&#23450;&#30340;&#31867;&#32423;&#21035;&#30340;&#23646;&#24615;&#25165;&#33021;&#30452;&#25509;&#22312;properties_list&#20013;&#20351;&#29992;&#12290;&#36229;&#31867;&#30340;&#23646;&#24615;&#19981;&#34987;&#25903;&#25345;&#65307;&#23376;&#31867;&#30340;&#23646;&#24615;&#26080;&#24847;&#20041;&#12290;&#25442;&#21477;&#35805;&#35828;&#65292;<tt class="literal">INSERT</tt>&#22825;&#29983;&#19981;&#25903;&#25345;&#22810;&#24577;&#12290;                </p></li><li><p>                    select_statement&#21487;&#20197;&#26159;&#20219;&#20309;&#21512;&#27861;&#30340;HQL&#36873;&#25321;&#26597;&#35810;&#65292;&#19981;&#36807;&#35201;&#20445;&#35777;&#36820;&#22238;&#31867;&#22411;&#24517;&#39035;&#21644;&#35201;&#25554;&#20837;&#30340;&#31867;&#22411;&#23436;&#20840;&#21305;&#37197;&#12290;&#30446;&#21069;&#65292;&#36825;&#19968;&#26816;&#26597;&#26159;&#22312;&#26597;&#35810;&#32534;&#35793;&#30340;&#26102;&#20505;&#36827;&#34892;&#30340;&#65292;&#32780;&#19981;&#26159;&#25226;&#23427;&#20132;&#32473;&#25968;&#25454;&#24211;&#12290;&#27880;&#24847;&#65292;&#22312;Hibernate<tt class="literal">Type</tt>&#38388;&#22914;&#26524;&#21482;&#26159;<span class="emphasis"><em>&#31561;&#20215;&#65288;equivalent&#65289;</em></span>&#32780;&#38750;<span class="emphasis"><em>&#30456;&#31561;(equal)</em></span>&#65292;&#20250;&#23548;&#33268;&#38382;&#39064;&#12290;&#23450;&#20041;&#20026;<tt class="literal">org.hibernate.type.DateType</tt>&#21644;<tt class="literal">org.hibernate.type.TimestampType</tt>&#30340;&#20004;&#20010;&#23646;&#24615;&#21487;&#33021;&#20250;&#20135;&#29983;&#31867;&#22411;&#19981;&#21305;&#37197;&#38169;&#35823;&#65292;&#34429;&#28982;&#25968;&#25454;&#24211;&#32423;&#21487;&#33021;&#19981;&#21152;&#21306;&#20998;&#25110;&#32773;&#21487;&#20197;&#22788;&#29702;&#36825;&#31181;&#36716;&#25442;&#12290;                </p></li><li><p>                    &#23545;id&#23646;&#24615;&#26469;&#35828;,insert&#35821;&#21477;&#32473;&#20320;&#20004;&#20010;&#36873;&#25321;&#12290;&#20320;&#21487;&#20197;&#26126;&#30830;&#22320;&#22312;properties_list&#34920;&#20013;&#25351;&#23450;id&#23646;&#24615;&#65288;&#36825;&#26679;&#23427;&#30340;&#20540;&#26159;&#20174;&#23545;&#24212;&#30340;select&#34920;&#36798;&#24335;&#20013;&#33719;&#24471;&#65289;&#65292;&#25110;&#32773;&#22312;properties_list&#20013;&#30465;&#30053;&#23427;&#65288;&#27492;&#26102;&#20351;&#29992;&#29983;&#25104;&#25351;&#65289;&#12290;&#21518;&#19968;&#31181;&#36873;&#25321;&#21482;&#26377;&#24403;&#20351;&#29992;&#22312;&#25968;&#25454;&#24211;&#20013;&#29983;&#25104;&#20540;&#30340;id&#20135;&#29983;&#22120;&#26102;&#25165;&#33021;&#20351;&#29992;&#65307;&#22914;&#26524;&#26159;&#8220;&#20869;&#23384;&#8221;&#20013;&#35745;&#31639;&#30340;&#31867;&#22411;&#29983;&#25104;&#22120;&#65292;&#22312;&#35299;&#26512;&#26102;&#20250;&#25243;&#20986;&#19968;&#20010;&#24322;&#24120;&#12290;&#27880;&#24847;&#65292;&#20026;&#20102;&#35828;&#26126;&#36825;&#19968;&#38382;&#39064;&#65292;&#25968;&#25454;&#24211;&#20135;&#29983;&#20540;&#30340;&#29983;&#25104;&#22120;&#26159;<tt class="literal">org.hibernate.id.SequenceGenerator</tt>&#65288;&#21644;&#23427;&#30340;&#23376;&#31867;&#65289;&#65292;&#20197;&#21450;&#20219;&#20309;<tt class="literal">org.hibernate.id.PostInsertIdentifierGenerator</tt>&#25509;&#21475;&#30340;&#23454;&#29616;&#12290;&#36825;&#20799;&#26368;&#20540;&#24471;&#27880;&#24847;&#30340;&#24847;&#22806;&#26159;<tt class="literal">org.hibernate.id.TableHiLoGenerator</tt>&#65292;&#23427;&#19981;&#33021;&#22312;&#27492;&#20351;&#29992;&#65292;&#22240;&#20026;&#23427;&#27809;&#26377;&#24471;&#21040;&#20854;&#20540;&#30340;&#36884;&#24452;&#12290;                </p></li><li><p>                    &#23545;&#26144;&#23556;&#20026;<tt class="literal">version</tt> &#25110; <tt class="literal">timestamp</tt>&#30340;&#23646;&#24615;&#26469;&#35828;&#65292;insert&#35821;&#21477;&#20063;&#32473;&#20320;&#20004;&#20010;&#36873;&#25321;&#65292;&#20320;&#21487;&#20197;&#22312;properties_list&#34920;&#20013;&#25351;&#23450;&#65288;&#27492;&#26102;&#20854;&#20540;&#20174;&#23545;&#24212;&#30340;select&#34920;&#36798;&#24335;&#20013;&#33719;&#24471;&#65289;&#65292;&#25110;&#32773;&#22312;properties_list&#20013;&#30465;&#30053;&#23427;&#65288;&#27492;&#26102;&#65292;&#20351;&#29992;&#22312;<tt class="literal">org.hibernate.type.VersionType</tt> &#20013;&#23450;&#20041;&#30340;<tt class="literal">seed value(&#31181;&#23376;&#20540;)</tt>&#65289;&#12290;                </p></li></ul></div><p>            &#25191;&#34892;HQL <tt class="literal">INSERT</tt>&#35821;&#21477;&#30340;&#20363;&#23376;&#22914;&#19979;&#65306;        </p><pre class="programlisting">Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();String hqlInsert = "insert into DelinquentAccount (id, name) select c.id, c.name from Customer c where ...";int createdEntities = s.createQuery( hqlInsert )        .executeUpdate();tx.commit();session.close();</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="events.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">&#19978;&#19968;&#32423;</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="queryhql.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;12&nbsp;&#31456;&nbsp;	&#25318;&#25130;&#22120;&#19982;&#20107;&#20214;(Interceptors and events)	&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">&#36215;&#22987;&#39029;</a></td><td width="40%" align="right" valign="top">&nbsp;&#31532;&nbsp;14&nbsp;&#31456;&nbsp;HQL: Hibernate&#26597;&#35810;&#35821;&#35328;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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