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

📄 querysql.html

📁 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档 关于hibernate的中文文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
               </p><div class="itemizedlist"><ul type="disc" compact><li><p>&#20989;&#25968;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#32467;&#26524;&#38598;&#12290;&#23384;&#20648;&#36807;&#31243;&#30340;&#31532;&#19968;&#20010;&#21442;&#25968;&#24517;&#39035;&#26159;<tt class="literal">OUT</tt>&#65292;&#23427;&#36820;&#22238;&#19968;&#20010;&#32467;&#26524;&#38598;&#12290;&#36825;&#26159;&#36890;&#36807;Oracle 9&#25110;10&#30340;<tt class="literal">SYS_REFCURSOR</tt>&#31867;&#22411;&#26469;&#23436;&#25104;&#30340;&#12290;&#22312;Oracle&#20013;&#20320;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;<tt class="literal">REF CURSOR</tt>&#31867;&#22411;&#65292;&#21442;&#35265;Oracle&#30340;&#25163;&#20876;&#12290;</p></li></ul></div><p>                   				   &#23545;&#20110;Sybase&#25110;&#32773;MS SQL server&#26377;&#22914;&#19979;&#35268;&#21017;:               </p><div class="itemizedlist"><ul type="disc" compact><li><p>    				   &#23384;&#20648;&#36807;&#31243;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#32467;&#26524;&#38598;&#12290;.&#27880;&#24847;&#36825;&#20123;servers&#21487;&#33021;&#36820;&#22238;&#22810;&#20010;&#32467;&#26524;&#38598;&#20197;&#21450;&#26356;&#26032;&#30340;&#25968;&#30446;.Hibernate&#23558;&#21462;&#20986;&#31532;&#19968;&#26465;&#32467;&#26524;&#38598;&#20316;&#20026;&#23427;&#30340;&#36820;&#22238;&#20540;&#65292;				   &#20854;&#20182;&#23558;&#34987;&#20002;&#24323;&#12290;               </p></li><li><p>    				   &#22914;&#26524;&#20320;&#33021;&#22815;&#22312;&#23384;&#20648;&#36807;&#31243;&#37324;&#35774;&#23450;<tt class="literal">SET NOCOUNT ON</tt>&#65292;&#36825;&#21487;&#33021;&#20250;&#25928;&#29575;&#26356;&#39640;&#65292;&#20294;&#36825;&#19981;&#26159;&#24517;&#38656;&#30340;&#12290;               </p></li></ul></div></div></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querysql-cud"></a>16.4.&nbsp;&#23450;&#21046;SQL&#29992;&#26469;create&#65292;update&#21644;delete</h2></div></div><div></div></div><p>			Hibernate3&#33021;&#22815;&#20351;&#29992;&#23450;&#21046;&#30340;SQL&#35821;&#21477;&#26469;&#25191;&#34892;create,update&#21644;delete&#25805;&#20316;&#12290;&#22312;Hibernate&#20013;&#65292;&#25345;&#20037;&#21270;&#30340;&#31867;&#21644;&#38598;&#21512;&#24050;&#32463;			&#21253;&#21547;&#20102;&#19968;&#22871;&#37197;&#32622;&#26399;&#20135;&#29983;&#30340;&#35821;&#21477;(insertsql, deletesql, updatesql&#31561;&#31561;)&#65292;&#36825;&#20123;&#26144;&#23556;&#26631;&#35760; <tt class="literal">&lt;sql-insert&gt;</tt>, 			<tt class="literal">&lt;sql-delete&gt;</tt>, and <tt class="literal">&lt;sql-update&gt;</tt>&#37325;&#36733;&#20102;			&#36825;&#20123;&#35821;&#21477;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;sql-insert&gt;INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )&lt;/sql-insert&gt;    &lt;sql-update&gt;UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?&lt;/sql-update&gt;    &lt;sql-delete&gt;DELETE FROM PERSON WHERE ID=?&lt;/sql-delete&gt;&lt;/class&gt;</pre><p>			&#36825;&#20123;SQL&#30452;&#25509;&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#37324;&#25191;&#34892;&#65292;&#25152;&#20197;&#20320;&#21487;&#20197;&#33258;&#30001;&#30340;&#20351;&#29992;&#20320;&#21916;&#27426;&#30340;&#20219;&#24847;&#35821;&#27861;&#12290;&#20294;&#22914;&#26524;&#20320;&#20351;&#29992;&#25968;&#25454;&#24211;&#29305;&#23450;&#30340;&#35821;&#27861;&#65292;			&#36825;&#24403;&#28982;&#20250;&#38477;&#20302;&#20320;&#26144;&#23556;&#30340;&#21487;&#31227;&#26893;&#24615;&#12290;        </p><p>			&#22914;&#26524;&#35774;&#23450;<tt class="literal">callable</tt>&#65292;&#21017;&#33021;&#22815;&#25903;&#25345;&#23384;&#20648;&#36807;&#31243;&#20102;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;sql-insert callable="true"&gt;{call createPerson (?, ?)}&lt;/sql-insert&gt;    &lt;sql-delete callable="true"&gt;{? = call deletePerson (?)}&lt;/sql-delete&gt;    &lt;sql-update callable="true"&gt;{? = call updatePerson (?, ?)}&lt;/sql-update&gt;&lt;/class&gt;</pre><p>		  &#21442;&#25968;&#30340;&#20301;&#32622;&#39034;&#24207;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#65292;&#20182;&#20204;&#24517;&#39035;&#21644;Hibernate&#25152;&#26399;&#24453;&#30340;&#39034;&#24207;&#30456;&#21516;&#12290;        </p><p>		  &#20320;&#33021;&#22815;&#36890;&#36807;&#35774;&#23450;&#26085;&#24535;&#35843;&#35797;&#32423;&#21035;&#20026;<tt class="literal">org.hiberante.persister.entity</tt>,&#26469;&#26597;&#30475;Hibernate&#25152;&#26399;&#24453;&#30340;&#39034;&#24207;&#12290;&#22312;&#36825;&#20010;&#32423;&#21035;&#19979;&#65292;		  Hibernate&#23558;&#20250;&#25171;&#21360;&#20986;create,update&#21644;delete&#23454;&#20307;&#30340;&#38745;&#24577;SQL&#12290;(&#22914;&#26524;&#24819;&#30475;&#21040;&#39044;&#35745;&#30340;&#39034;&#24207;&#12290;&#35760;&#24471;&#19981;&#35201;&#23558;&#23450;&#21046;SQL&#21253;&#21547;&#22312;&#26144;&#23556;&#25991;&#20214;&#37324;&#65292;		  &#22240;&#20026;&#20182;&#20204;&#20250;&#37325;&#36733;Hibernate&#29983;&#25104;&#30340;&#38745;&#24577;SQL&#12290;)        </p><p>			&#22312;&#22823;&#22810;&#25968;&#24773;&#20917;&#19979;(&#26368;&#22909;&#36825;&#20040;&#20570;)&#65292;&#23384;&#20648;&#36807;&#31243;&#38656;&#35201;&#36820;&#22238;&#25554;&#20837;/&#26356;&#26032;/&#21024;&#38500;&#30340;&#34892;&#25968;&#65292;&#22240;&#20026;Hibernate&#23545;&#35821;&#21477;&#30340;&#25104;&#21151;&#25191;&#34892;&#26377;&#20123;&#36816;&#34892;&#26102;&#30340;&#26816;&#26597;&#12290;			Hibernate&#24120;&#20250;&#25226;&#36827;&#34892;CUD&#25805;&#20316;&#30340;&#35821;&#21477;&#30340;&#31532;&#19968;&#20010;&#21442;&#25968;&#27880;&#20876;&#20026;&#19968;&#20010;&#25968;&#20540;&#22411;&#36755;&#20986;&#21442;&#25968;&#12290;        </p><pre class="programlisting">CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN VARCHAR2)    RETURN NUMBER ISBEGIN    update PERSON    set        NAME = uname,    where        ID = uid;    return SQL%ROWCOUNT;END updatePerson;</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="querysql-load"></a>16.5.&nbsp;&#23450;&#21046;&#35013;&#36733;SQL</h2></div></div><div></div></div><p>			&#20320;&#21487;&#33021;&#38656;&#35201;&#22768;&#26126;&#20320;&#33258;&#24049;&#30340;SQL(&#25110;HQL)&#26469;&#35013;&#36733;&#23454;&#20307;        </p><pre class="programlisting">&lt;sql-query name="person"&gt;    &lt;return alias="pers" class="Person" lock-mode="upgrade"/&gt;    SELECT NAME AS {pers.name}, ID AS {pers.id}    FROM PERSON    WHERE ID=?    FOR UPDATE&lt;/sql-query&gt;</pre><p>			&#36825;&#21482;&#26159;&#19968;&#20010;&#21069;&#38754;&#35752;&#35770;&#36807;&#30340;&#21629;&#21517;&#26597;&#35810;&#22768;&#26126;&#65292;&#20320;&#21487;&#20197;&#22312;&#31867;&#26144;&#23556;&#37324;&#24341;&#29992;&#36825;&#20010;&#21629;&#21517;&#26597;&#35810;&#12290;        </p><pre class="programlisting">&lt;class name="Person"&gt;    &lt;id name="id"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="name" not-null="true"/&gt;    &lt;loader query-ref="person"/&gt;&lt;/class&gt;</pre><p>		    &#36825;&#20063;&#21487;&#20197;&#29992;&#20110;&#23384;&#20648;&#36807;&#31243;        </p><p>&#20320;&#29978;&#33267;&#21487;&#20197;&#23450;&#19968;&#20010;&#29992;&#20110;&#38598;&#21512;&#35013;&#36733;&#30340;&#26597;&#35810;:</p><pre class="programlisting">&lt;set name="employments" inverse="true"&gt;    &lt;key/&gt;    &lt;one-to-many class="Employment"/&gt;    &lt;loader query-ref="employments"/&gt;&lt;/set&gt;</pre><pre class="programlisting">&lt;sql-query name="employments"&gt;    &lt;load-collection alias="emp" role="Person.employments"/&gt;    SELECT {emp.*}    FROM EMPLOYMENT emp    WHERE EMPLOYER = :id    ORDER BY STARTDATE ASC, EMPLOYEE ASC&lt;/sql-query&gt;</pre><p>&#20320;&#29978;&#33267;&#36824;&#21487;&#20197;&#23450;&#20041;&#19968;&#20010;&#23454;&#20307;&#35013;&#36733;&#22120;&#65292;&#23427;&#36890;&#36807;&#36830;&#25509;&#25235;&#21462;&#35013;&#36733;&#19968;&#20010;&#38598;&#21512;:</p><pre class="programlisting">&lt;sql-query name="person"&gt;    &lt;return alias="pers" class="Person"/&gt;    &lt;return-join alias="emp" property="pers.employments"/&gt;    SELECT NAME AS {pers.*}, {emp.*}    FROM PERSON pers    LEFT OUTER JOIN EMPLOYMENT emp        ON pers.ID = emp.PERSON_ID    WHERE ID=?&lt;/sql-query&gt;</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="querycriteria.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="filters.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;15&nbsp;&#31456;&nbsp;    &#26465;&#20214;&#26597;&#35810;(Criteria Queries)    &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;17&nbsp;&#31456;&nbsp;&#36807;&#28388;&#25968;&#25454;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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