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

📄 tutorial.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
		&#36825;&#26159;Hibernate&#25191;&#34892;&#30340;<tt class="literal">INSERT</tt>&#21629;&#20196;&#65292;&#38382;&#21495;&#20195;&#34920;JDBC&#30340;&#24453;&#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;		&#26816;&#26597;&#20320;&#22312;<tt class="literal">log4j.properties</tt>&#25991;&#20214;&#37324;&#30340;&#35774;&#32622;&#12290;            </p><p>		&#29616;&#22312;&#25105;&#20204;&#24819;&#35201;&#21015;&#20986;&#25152;&#26377;&#24050;&#32463;&#34987;&#23384;&#20648;&#30340;event&#65292;&#25152;&#20197;&#25105;&#20204;&#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() {    Session session = HibernateUtil.currentSession();    Transaction tx = session.beginTransaction();    List result = session.createQuery("from Event").list();    tx.commit();    session.close();    return result;}</pre><p>		&#25105;&#20204;&#22312;&#36825;&#37324;&#26159;&#29992;&#19968;&#20010;HQL&#65288;Hibernate Query Language&#65293;Hibernate&#26597;&#35810;&#35821;&#35328;&#65289;&#26597;&#35810;&#35821;&#21477;&#26469;&#20174;&#25968;&#25454;&#24211;&#20013;		&#21152;&#36733;&#25152;&#26377;&#23384;&#22312;&#30340;<tt class="literal">Event</tt>&#12290;Hibernate&#20250;&#29983;&#25104;&#27491;&#30830;&#30340;SQL&#65292;&#21457;&#36865;&#21040;&#25968;&#25454;&#24211;&#24182;&#20351;&#29992;&#26597;&#35810;&#21040;&#30340;&#25968;&#25454;&#26469;&#29983;&#25104;<tt class="literal">Event</tt>&#23545;&#35937;&#12290;		&#24403;&#28982;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;HQL&#26469;&#21019;&#24314;&#26356;&#21152;&#22797;&#26434;&#30340;&#26597;&#35810;&#12290;            </p><p>		&#22914;&#26524;&#20320;&#29616;&#22312;&#20351;&#29992;&#21629;&#20196;&#34892;&#21442;&#25968;<tt class="literal">-Daction=list</tt>&#26469;&#36816;&#34892;Ant&#65292;&#20320;&#20250;&#30475;&#21040;&#37027;&#20123;&#33267;&#20170;&#20026;&#27490;&#25105;&#20204;&#20648;&#23384;&#30340;Event&#12290;		&#22914;&#26524;&#20320;&#26159;&#19968;&#30452;&#19968;&#27493;&#27493;&#30340;&#36319;&#38543;&#36825;&#20010;&#25945;&#31243;&#36827;&#34892;&#30340;&#65292;&#20320;&#20063;&#35768;&#20250;&#21507;&#24778;&#36825;&#20010;&#24182;&#19981;&#33021;&#24037;&#20316; &#65293; &#32467;&#26524;&#27704;&#36828;&#20026;&#31354;&#12290;&#21407;&#22240;&#26159;<tt class="literal">hbm2ddl.auto</tt>		&#25171;&#24320;&#20102;&#19968;&#20010;Hibernate&#30340;&#37197;&#32622;&#36873;&#39033;&#65306;&#36825;&#20351;&#24471;Hibernate&#20250;&#22312;&#27599;&#27425;&#36816;&#34892;&#30340;&#26102;&#20505;&#37325;&#26032;&#21019;&#24314;&#25968;&#25454;&#24211;&#12290;&#36890;&#36807;&#20174;&#37197;&#32622;&#37324;&#21024;&#38500;&#36825;&#20010;&#36873;&#39033;&#26469;&#31105;&#27490;&#23427;&#12290;		&#36816;&#34892;&#20102;&#20960;&#27425;<tt class="literal">store</tt>&#20043;&#21518;&#65292;&#20877;&#36816;&#34892;<tt class="literal">list</tt>&#65292;&#20320;&#20250;&#30475;&#21040;&#32467;&#26524;&#20986;&#29616;&#22312;&#21015;&#34920;&#37324;&#12290;		&#21478;&#22806;&#65292;&#33258;&#21160;&#29983;&#25104;&#25968;&#25454;&#24211;&#34920;&#24182;&#23548;&#20986;&#22312;&#21333;&#20803;&#27979;&#35797;&#20013;&#26159;&#38750;&#24120;&#26377;&#29992;&#30340;&#12290;            </p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-associations"></a>2.3.&nbsp;		&#31532;&#20108;&#37096;&#20998; &#65293; &#20851;&#32852;&#26144;&#23556;	</h2></div></div><div></div></div><p>		&#25105;&#20204;&#24050;&#32463;&#26144;&#23556;&#20102;&#19968;&#20010;&#25345;&#20037;&#21270;&#23454;&#20307;&#31867;&#21040;&#19968;&#20010;&#34920;&#19978;&#12290;&#35753;&#25105;&#20204;&#22312;&#36825;&#20010;&#22522;&#30784;&#19978;&#22686;&#21152;&#19968;&#20123;&#31867;&#20043;&#38388;&#30340;&#20851;&#32852;&#24615;&#12290;		&#39318;&#20808;&#25105;&#20204;&#24448;&#25105;&#20204;&#31243;&#24207;&#37324;&#38754;&#22686;&#21152;&#20154;&#65288;people&#65289;&#30340;&#27010;&#24565;&#65292;&#24182;&#23384;&#20648;&#20182;&#20204;&#25152;&#21442;&#19982;&#30340;&#19968;&#20010;Event&#21015;&#34920;&#12290;		&#65288;&#35793;&#32773;&#27880;&#65306;&#19982;Event&#19968;&#26679;&#65292;&#25105;&#20204;&#22312;&#21518;&#38754;&#30340;&#25945;&#31243;&#20013;&#23558;&#30452;&#25509;&#20351;&#29992;person&#26469;&#34920;&#31034;&#8220;&#20154;&#8221;&#32780;&#19981;&#26159;&#23427;&#30340;&#20013;&#25991;&#32763;&#35793;&#65289;        </p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-associations-mappinguser"></a>2.3.1.&nbsp;		&#26144;&#23556;Person&#31867;		</h3></div></div><div></div></div><p>		&#26368;&#21021;&#30340;<tt class="literal">Person</tt>&#31867;&#26159;&#31616;&#21333;&#30340;&#65306;            </p><pre class="programlisting">public class Person {    private Long id;    private int age;    private String firstname;    private String lastname;    Person() {}    // Accessor methods for all properties, private setter for 'id'}</pre><p>                Create a new mapping file called <tt class="literal">Person.hbm.xml</tt>:            </p><pre class="programlisting">&lt;hibernate-mapping&gt;    &lt;class name="Person" table="PERSON"&gt;        &lt;id name="id" column="PERSON_ID"&gt;            &lt;generator class="increment"/&gt;        &lt;/id&gt;        &lt;property name="age"/&gt;        &lt;property name="firstname"/&gt;        &lt;property name="lastname"/&gt;    &lt;/class&gt;&lt;/hibernate-mapping&gt;</pre><p>                Finally, add the new mapping to Hibernate's configuration:            </p><pre class="programlisting">        &lt;mapping resource="Event.hbm.xml"/&gt;        &lt;mapping resource="Person.hbm.xml"/&gt;</pre><p>		&#25105;&#20204;&#29616;&#22312;&#23558;&#22312;&#36825;&#20004;&#20010;&#23454;&#20307;&#31867;&#20043;&#38388;&#21019;&#24314;&#19968;&#20010;&#20851;&#32852;&#12290;&#26174;&#28982;&#65292;person&#21487;&#20197;&#21442;&#19982;&#19968;&#31995;&#21015;Event&#65292;&#32780;Event&#20063;&#26377;&#19981;&#21516;&#30340;&#21442;&#21152;&#32773;&#65288;person&#65289;&#12290;		&#35774;&#35745;&#19978;&#38754;&#25105;&#20204;&#38656;&#35201;&#32771;&#34385;&#30340;&#38382;&#39064;&#26159;&#20851;&#32852;&#30340;&#26041;&#21521;&#65288;directionality&#65289;&#65292;&#38454;&#25968;&#65288;multiplicity&#65289;&#21644;&#38598;&#21512;&#65288;collection&#65289;&#30340;&#34892;&#20026;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-associations-unidirset"></a>2.3.2.&nbsp;		&#19968;&#20010;&#21333;&#21521;&#30340;Set-based&#20851;&#32852;		</h3></div></div><div></div></div><p>		&#25105;&#20204;&#23558;&#21521;<tt class="literal">Person</tt>&#31867;&#22686;&#21152;&#19968;&#32452;Event&#12290;&#36825;&#26679;&#25105;&#20204;&#21487;&#20197;&#36731;&#26494;&#30340;&#36890;&#36807;&#35843;&#29992;<tt class="literal">aPerson.getEvents()</tt>		&#24471;&#21040;&#19968;&#20010;Person&#25152;&#21442;&#19982;&#30340;Event&#21015;&#34920;&#65292;&#32780;&#19981;&#24517;&#25191;&#34892;&#19968;&#20010;&#26174;&#24335;&#30340;&#26597;&#35810;&#12290;&#25105;&#20204;&#20351;&#29992;&#19968;&#20010;Java&#30340;&#38598;&#21512;&#31867;&#65306;&#19968;&#20010;<tt class="literal">Set</tt>&#65292;&#22240;&#20026;Set		&#19981;&#20801;&#35768;&#21253;&#25324;&#37325;&#22797;&#30340;&#20803;&#32032;&#32780;&#19988;&#25490;&#24207;&#21644;&#25105;&#20204;&#26080;&#20851;&#12290;            </p><p>		 &#30446;&#21069;&#20026;&#27490;&#25105;&#20204;&#35774;&#35745;&#20102;&#19968;&#20010;&#21333;&#21521;&#30340;&#65292;&#22312;&#19968;&#31471;&#26377;&#35768;&#22810;&#20540;&#19982;&#20043;&#23545;&#24212;&#30340;&#20851;&#32852;&#65292;&#36890;&#36807;<tt class="literal">Set</tt>&#26469;&#23454;&#29616;&#12290;		&#35753;&#25105;&#20204;&#20026;&#36825;&#20010;&#22312;Java&#31867;&#37324;&#32534;&#30721;&#24182;&#26144;&#23556;&#36825;&#20010;&#20851;&#32852;&#65306;            </p><pre class="programlisting">public class Person {    private Set events = new HashSet();    public Set getEvents() {        return events;    }    public void setEvents(Set events) {        this.events = events;    }}</pre><p>		&#22312;&#25105;&#20204;&#26144;&#23556;&#36825;&#20010;&#20851;&#32852;&#20043;&#21069;&#65292;&#20808;&#32771;&#34385;&#36825;&#20010;&#20851;&#32852;&#21478;&#22806;&#19968;&#31471;&#12290;&#24456;&#26174;&#28982;&#30340;&#65292;&#25105;&#20204;&#21487;&#20197;&#20445;&#25345;&#36825;&#20010;&#20851;&#32852;&#26159;&#21333;&#21521;&#30340;&#12290;&#22914;&#26524;&#25105;&#20204;&#24076;&#26395;&#36825;&#20010;&#20851;&#32852;&#26159;&#21452;&#21521;&#30340;&#65292;		&#25105;&#20204;&#21487;&#20197;&#22312;<tt class="literal">Event</tt>&#37324;&#21019;&#24314;&#21478;&#22806;&#19968;&#20010;&#38598;&#21512;&#65292;&#20363;&#22914;&#65306;<tt class="literal">anEvent.getParticipants()</tt>&#12290;		&#36825;&#26159;&#30041;&#32473;&#20320;&#30340;&#19968;&#20010;&#35774;&#35745;&#36873;&#39033;&#65292;&#20294;&#26159;&#20174;&#36825;&#20010;&#35752;&#35770;&#20013;&#25105;&#20204;&#21487;&#20197;&#24456;&#28165;&#26970;&#30340;&#20102;&#35299;&#20160;&#20040;&#26159;&#20851;&#32852;&#30340;&#38454;&#25968;&#65288;multiplicity&#65289;&#65306;&#22312;&#36825;&#20010;&#20851;&#32852;&#30340;&#20004;&#31471;&#37117;&#26159;&#8220;&#22810;&#8221;&#12290;		&#25105;&#20204;&#21483;&#36825;&#20010;&#20026;&#65306;<span class="emphasis"><em>&#22810;&#23545;&#22810;&#65288;many-to-many&#65289;</em></span>&#20851;&#32852;&#12290;&#22240;&#27492;&#65292;&#25105;&#20204;&#20351;&#29992;Hibernate&#30340;many-to-many&#26144;&#23556;&#65306;            </p><pre class="programlisting">&lt;class name="Person" table="PERSON"&gt;    &lt;id name="id" column="PERSON_ID"&gt;        &lt;generator class="increment"/&gt;    &lt;/id&gt;    &lt;property name="age"/&gt;    &lt;property name="firstname"/&gt;    &lt;property name="lastname"/&gt;    &lt;set name="events" table="PERSON_EVENT"&gt;        &lt;key column="PERSON_ID"/&gt;        &lt;many-to-many column="EVENT_ID" class="Event"/&gt;    &lt;/set&gt;&lt;/class&gt;</pre><p>		 Hibernate&#25903;&#25345;&#25152;&#26377;&#31181;&#31867;&#30340;&#38598;&#21512;&#26144;&#23556;&#65292;<tt class="literal">&lt;set&gt;</tt>&#26159;&#26368;&#26222;&#36941;&#34987;&#20351;&#29992;&#30340;&#12290;&#23545;&#20110;&#22810;&#23545;&#22810;&#65288;many-to-many&#65289;&#20851;&#32852;(&#25110;&#32773;&#21483;<span class="emphasis"><em>n:m</em></span>&#23454;&#20307;&#20851;&#31995;), 		&#38656;&#35201;&#19968;&#20010;&#29992;&#26469;&#2

⌨️ 快捷键说明

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