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

📄 tutorial.html

📁 非常好的 Hibernate中文API ,供各位开发参考
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    }}</pre><p>	&#36825;&#20010;&#31867;&#19981;&#20294;&#22312;&#23427;&#30340;&#38745;&#24577;&#21021;&#22987;&#21270;&#36807;&#31243;&#65288;&#20165;&#24403;&#21152;&#36733;&#36825;&#20010;&#31867;&#30340;&#26102;&#20505;&#34987;JVM&#25191;&#34892;&#19968;&#27425;&#65289;&#20013;&#20135;&#29983;&#20840;&#23616;&#30340;<tt class="literal">SessionFactory</tt>&#65292;&#32780;&#19988;&#38544;&#34255;&#20102;&#23427;&#20351;&#29992;&#20102;&#38745;&#24577;singleton&#30340;&#20107;&#23454;&#12290;&#23427;&#20063;&#21487;&#33021;&#22312;&#24212;&#29992;&#31243;&#24207;&#26381;&#21153;&#22120;&#20013;&#30340;JNDI&#26597;&#25214;<tt class="literal">SessionFactory</tt>&#12290;            </p><p>                &#22914;&#26524;&#20320;&#22312;&#37197;&#32622;&#25991;&#20214;&#20013;&#32473;<tt class="literal">SessionFactory</tt>&#19968;&#20010;&#21517;&#23383;&#65292;&#22312;<tt class="literal">SessionFactory</tt>&#21019;&#24314;&#21518;&#65292;Hibernate&#20250;&#35797;&#30528;&#25226;&#23427;&#32465;&#23450;&#21040;JNDI&#12290;&#35201;&#23436;&#20840;&#36991;&#20813;&#36825;&#26679;&#30340;&#20195;&#30721;&#65292;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;JMX&#37096;&#32626;&#65292;&#35753;&#20855;&#26377;JMX&#33021;&#21147;&#30340;&#23481;&#22120;&#26469;&#23454;&#20363;&#21270;<tt class="literal">HibernateService</tt>&#24182;&#25226;&#23427;&#32465;&#23450;&#21040;JNDI&#12290;&#36825;&#20123;&#39640;&#32423;&#21487;&#36873;&#39033;&#22312;&#21518;&#38754;&#30340;&#31456;&#33410;&#20013;&#20250;&#35752;&#35770;&#21040;&#12290;            </p><p>                &#25226;<tt class="literal">HibernateUtil.java</tt>&#25918;&#22312;&#24320;&#21457;&#30446;&#24405;&#30340;&#28304;&#20195;&#30721;&#36335;&#24452;&#19979;&#65292;&#19982;&#25918;<tt class="literal">events</tt>&#30340;&#21253;&#24182;&#21015;&#65306;            </p><pre class="programlisting">.+lib  &lt;Hibernate and third-party libraries&gt;+src  +events    Event.java    Event.hbm.xml  +util    HibernateUtil.java  hibernate.cfg.xml+databuild.xml</pre><p>	&#20877;&#27425;&#32534;&#35793;&#36825;&#20010;&#24212;&#29992;&#31243;&#24207;&#24212;&#35813;&#19981;&#20250;&#26377;&#38382;&#39064;&#12290;&#26368;&#21518;&#25105;&#20204;&#38656;&#35201;&#37197;&#32622;&#19968;&#20010;&#26085;&#24535;&#65288;logging)&#31995;&#32479; &#65293; Hibernate&#20351;&#29992;&#36890;&#29992;&#26085;&#24535;&#25509;&#21475;&#65292;&#20801;&#35768;&#20320;&#22312;Log4j&#21644;JDK 1.4 &#26085;&#24535;&#20043;&#38388;&#36827;&#34892;&#36873;&#25321;&#12290;&#22810;&#25968;&#24320;&#21457;&#32773;&#26356;&#21916;&#27426;Log4j&#65306;&#20174;Hibernate&#30340;&#21457;&#24067;&#21253;&#20013;&#65288;&#23427;&#22312;<tt class="literal">etc/</tt>&#30446;&#24405;&#19979;&#65289;&#25335;&#36125;<tt class="literal">log4j.properties</tt>&#21040;&#20320;&#30340;<tt class="literal">src</tt>&#30446;&#24405;&#65292;&#19982;<tt class="literal">hibernate.cfg.xml</tt>.&#25918;&#22312;&#19968;&#36215;&#12290;&#30475;&#19968;&#19979;&#37197;&#32622;&#31034;&#20363;&#65292;&#22914;&#26524;&#20320;&#24076;&#26395;&#30475;&#21040;&#26356;&#21152;&#35814;&#32454;&#30340;&#36755;&#20986;&#20449;&#24687;&#65292;&#20320;&#21487;&#20197;&#20462;&#25913;&#37197;&#32622;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;&#21482;&#26377;Hibernate&#30340;&#21551;&#21160;&#20449;&#24687;&#25165;&#20250;&#26174;&#31034;&#22312;&#26631;&#20934;&#36755;&#20986;&#19978;&#12290;            </p><p>	&#31034;&#20363;&#30340;&#22522;&#26412;&#26694;&#26550;&#23436;&#25104;&#20102; &#65293; &#29616;&#22312;&#25105;&#20204;&#21487;&#20197;&#29992;Hibernate&#26469;&#20570;&#20123;&#30495;&#27491;&#30340;&#24037;&#20316;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-firstapp-workingpersistence"></a>1.2.6.&nbsp;	&#21152;&#36733;&#24182;&#23384;&#20648;&#23545;&#35937;		</h3></div></div><div></div></div><p>	&#25105;&#20204;&#32456;&#20110;&#21487;&#20197;&#20351;&#29992;Hibernate&#26469;&#21152;&#36733;&#21644;&#23384;&#20648;&#23545;&#35937;&#20102;&#65292;&#32534;&#20889;&#19968;&#20010;&#24102;&#26377;<tt class="literal">main()</tt>&#26041;&#27861;&#30340;<tt class="literal">EventManager</tt>&#31867;&#65306;            </p><pre class="programlisting">package events;import org.hibernate.Session;import java.util.Date;import util.HibernateUtil;public class EventManager {    public static void main(String[] args) {        EventManager mgr = new EventManager();        if (args[0].equals("store")) {            mgr.createAndStoreEvent("My Event", new Date());        }        HibernateUtil.getSessionFactory().close();    }    private void createAndStoreEvent(String title, Date theDate) {        Session session = HibernateUtil.getSessionFactory().getCurrentSession();        session.beginTransaction();        Event theEvent = new Event();        theEvent.setTitle(title);        theEvent.setDate(theDate);        session.save(theEvent);        session.getTransaction().commit();    }}</pre><p>	&#25105;&#20204;&#21019;&#24314;&#20102;&#20010;&#26032;&#30340;<tt class="literal">Event</tt>&#23545;&#35937;&#24182;&#25226;&#23427;&#20256;&#36882;&#32473;Hibernate&#12290;&#29616;&#22312;Hibernate&#36127;&#36131;&#19982;SQL&#25171;&#20132;&#36947;&#65292;&#24182;&#25226;<tt class="literal">INSERT</tt>&#21629;&#20196;&#20256;&#32473;&#25968;&#25454;&#24211;&#12290;&#22312;&#36816;&#34892;&#20043;&#21069;&#65292;&#35753;&#25105;&#20204;&#30475;&#19968;&#19979;&#22788;&#29702;<tt class="literal">Session</tt>&#21644;<tt class="literal">Transaction</tt>&#30340;&#20195;&#30721;&#12290;		            </p><p>                &#19968;&#20010;<tt class="literal">Session</tt>&#23601;&#26159;&#20010;&#21333;&#19968;&#30340;&#24037;&#20316;&#21333;&#20803;&#12290;&#25105;&#20204;&#26242;&#26102;&#35753;&#20107;&#24773;&#31616;&#21333;&#19968;&#20123;&#65292;&#24182;&#20551;&#35774;Hibernate<tt class="literal">Session</tt>&#21644;&#25968;&#25454;&#24211;&#20107;&#21153;&#26159;&#19968;&#19968;&#23545;&#24212;&#30340;&#12290;&#20026;&#20102;&#35753;&#25105;&#20204;&#30340;&#20195;&#30721;&#20174;&#24213;&#23618;&#30340;&#20107;&#21153;&#31995;&#32479;&#20013;&#33073;&#31163;&#20986;&#26469;&#65288;&#27492;&#20363;&#20013;&#26159;JDBC&#65292;&#20294;&#20063;&#21487;&#33021;&#26159;JTA&#65289;&#65292;&#25105;&#20204;&#20351;&#29992;Hibernate <tt class="literal">Session</tt>&#20013;&#30340;<tt class="literal">Transaction</tt> API&#12290;            </p><p>                <tt class="literal">sessionFactory.getCurrentSession()</tt>&#26159;&#24178;&#20160;&#20040;&#30340;&#21602;&#65311;&#39318;&#20808;&#65292;&#21482;&#35201;&#20320;&#25345;&#26377;<tt class="literal">SessionFactory</tt>&#65288;&#24184;&#20111;&#25105;&#20204;&#26377;<tt class="literal">HibernateUtil</tt>&#65292;&#21487;&#20197;&#38543;&#26102;&#33719;&#24471;&#65289;&#65292;&#22823;&#21487;&#22312;&#20219;&#20309;&#26102;&#20505;&#12289;&#20219;&#20309;&#22320;&#28857;&#35843;&#29992;&#36825;&#20010;&#26041;&#27861;&#12290;<tt class="literal">getCurrentSession()</tt>&#26041;&#27861;&#24635;&#20250;&#36820;&#22238;&#8220;&#24403;&#21069;&#30340;&#8221;&#24037;&#20316;&#21333;&#20803;&#12290;&#35760;&#24471;&#25105;&#20204;&#22312;<tt class="literal">hibernate.cfg.xml</tt>&#20013;&#25226;&#36825;&#19968;&#37197;&#32622;&#36873;&#39033;&#35843;&#25972;&#20026;"thread"&#20102;&#21527;&#65311;&#22240;&#27492;&#65292;&#24403;&#21069;&#24037;&#20316;&#21333;&#20803;&#30340;&#33539;&#22260;&#23601;&#26159;&#24403;&#21069;&#25191;&#34892;&#25105;&#20204;&#24212;&#29992;&#31243;&#24207;&#30340;Java&#32447;&#31243;&#12290;&#20294;&#26159;&#65292;&#36825;&#24182;&#38750;&#24635;&#26159;&#27491;&#30830;&#30340;&#12290; <tt class="literal">Session</tt>&#22312;&#31532;&#19968;&#27425;&#34987;&#20351;&#29992;&#30340;&#26102;&#20505;,&#25110;&#32773;&#31532;&#19968;&#27425;&#35843;&#29992;<tt class="literal">getCurrentSession()</tt>&#30340;&#26102;&#20505;,&#20854;&#29983;&#21629;&#21608;&#26399;&#23601;&#24320;&#22987;&#12290;&#28982;&#21518;&#23427;&#34987;Hibernate&#32465;&#23450;&#21040;&#24403;&#21069;&#32447;&#31243;&#12290;&#24403;&#20107;&#21153;&#32467;&#26463;&#30340;&#26102;&#20505;&#65292;&#19981;&#31649;&#26159;&#25552;&#20132;&#36824;&#26159;&#22238;&#28378;&#65292;Hibernate&#20063;&#20250;&#25226;<tt class="literal">Session</tt>&#20174;&#24403;&#21069;&#32447;&#31243;&#21093;&#31163;&#65292;&#24182;&#19988;&#20851;&#38381;&#23427;&#12290;&#20551;&#33509;&#20320;&#20877;&#27425;&#35843;&#29992;<tt class="literal">getCurrentSession()</tt>&#65292;&#20320;&#20250;&#24471;&#21040;&#19968;&#20010;&#26032;&#30340;<tt class="literal">Session</tt>&#65292;&#24182;&#19988;&#24320;&#22987;&#19968;&#20010;&#26032;&#30340;&#24037;&#20316;&#21333;&#20803;&#12290;&#36825;&#31181;<span class="emphasis"><em>&#32447;&#31243;&#32465;&#23450;(thread-bound)</em></span>&#30340;&#32534;&#31243;&#27169;&#22411;&#65288;model&#65289;&#26159;&#20351;&#29992;Hibernate&#30340;&#26368;&#24191;&#27867;&#30340;&#26041;&#24335;&#12290;            </p><p>                &#20851;&#20110;&#20107;&#21153;&#22788;&#29702;&#21450;&#20107;&#21153;&#36793;&#30028;&#30028;&#23450;&#30340;&#35814;&#32454;&#20449;&#24687;&#65292;&#35831;&#21442;&#30475;<a href="transactions.html" title="&#31532;&nbsp;11&nbsp;&#31456;&nbsp;&#20107;&#21153;&#21644;&#24182;&#21457;">&#31532;&nbsp;11&nbsp;&#31456; <i>&#20107;&#21153;&#21644;&#24182;&#21457;</i></a>&#12290;&#22312;&#19978;&#38754;&#30340;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20063;&#24573;&#30053;&#20102;&#25152;&#26377;&#30340;&#38169;&#35823;&#19982;&#22238;&#28378;&#30340;&#22788;&#29702;&#12290;            </p><p>	&#20026;&#31532;&#19968;&#27425;&#36816;&#34892;&#25105;&#20204;&#30340;&#31243;&#24207;&#65292;&#25105;&#20204;&#24471;&#22312;Ant&#30340;build&#25991;&#20214;&#20013;&#22686;&#21152;&#19968;&#20010;&#21487;&#20197;&#35843;&#29992;&#24471;&#21040;&#30340;target&#12290;            </p><pre class="programlisting">&lt;target name="run" depends="compile"&gt;    &lt;java fork="true" classname="events.EventManager" classpathref="libraries"&gt;        &lt;classpath path="${targetdir}"/&gt;        &lt;arg value="${action}"/&gt;    &lt;/java&gt;&lt;/target&gt;</pre><p>                <tt class="literal">action</tt>&#21442;&#25968;&#65288;argument&#65289;&#30340;&#20540;&#26159;&#36890;&#36807;&#21629;&#20196;&#34892;&#35843;&#29992;&#36825;&#20010;target&#30340;&#26102;&#20505;&#35774;&#32622;&#30340;&#65306;            </p><pre class="programlisting">C:\hibernateTutorial\&gt;ant run -Daction=store</pre><p>	&#20320;&#24212;&#35813;&#20250;&#30475;&#21040;&#65292;&#32534;&#35793;&#20197;&#21518;&#65292;Hibernate&#26681;&#25454;&#20320;&#30340;&#37197;&#32622;&#21551;&#21160;&#65292;&#24182;&#20135;&#29983;&#19968;&#22823;&#22534;&#30340;&#36755;&#20986;&#26085;&#24535;&#12290;&#22312;&#26085;&#24535;&#26368;&#21518;&#20320;&#20250;&#30475;&#21040;&#19979;&#38754;&#36825;&#34892;&#65306;            </p><pre class="programlisting">[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values (?, ?, ?)</pre><p>	&#36825;&#26159;Hibernate&#25191;&#34892;&#30340;<tt class="literal">INSERT</tt>&#21629;&#20196;&#65292;&#38382;&#21495;&#20195;&#34920;JDBC&#30340;&#32465;&#23450;&#21442;&#25968;&#12290;&#22914;&#26524;&#24819;&#35201;&#30475;&#21040;&#32465;&#23450;&#21442;&#25968;&#30340;&#20540;&#25110;&#32773;&#20943;&#23569;&#26085;&#24535;&#30340;&#38271;&#24230;&#65292;&#23601;&#35201;&#35843;&#25972;&#20320;&#22312;<tt class="literal">log4j.properties</tt>&#25991;&#20214;&#37324;&#30340;&#35774;&#32622;&#12290;            </p><p>	&#25105;&#20204;&#24819;&#35201;&#21015;&#20986;&#25152;&#26377;&#24050;&#32463;&#34987;&#23384;&#20648;&#30340;events&#65292;&#23601;&#35201;&#22686;&#21152;&#19968;&#20010;&#26465;&#20214;&#20998;&#25903;&#36873;&#39033;&#21040;main&#26041;&#27861;&#20013;&#21435;&#12290;            </p><pre class="programlisting">if (args[0].equals("store")) {    mgr.createAndStoreEvent("My Event", new Date());}else if (args[0].equals("list")) {    List events = mgr.listEvents();    for (int i = 0; i &lt; events.size(); i++) {        Event theEvent = (Event) events.get(i);        System.out.println("Event: " + theEvent.getTitle() +                           " Time: " + theEvent.getDate());    }}</pre><p>	&#25105;&#20204;&#20063;&#22686;&#21152;&#19968;&#20010;&#26032;&#30340;<tt class="literal">listEvents()</tt>&#26041;&#27861;:            </p><pre class="programlisting">private List listEvents() {

⌨️ 快捷键说明

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