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

📄 quickstart.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
            &#27599;&#20010;&#25345;&#20037;&#21270;&#31867;&#37117;&#24212;&#35813;&#26377;&#19968;&#20010;&#26631;&#35782;&#23646;&#24615;&#65288;&#23454;&#38469;&#19978;&#65292;&#36825;&#20010;&#31867;&#21482;&#20195;&#34920;&#23454;&#20307;&#65292;&#32780;&#19981;&#26159;&#29420;&#31435;&#30340;&#20540;&#31867;&#22411;&#31867;&#65292;&#21518;&#32773;&#20250;&#34987;&#26144;&#23556;&#31216;&#20026;&#23454;&#20307;&#23545;&#35937;&#20013;&#30340;&#19968;&#20010;&#32452;&#20214;&#65289;&#12290;&#36825;&#20010;&#23646;&#24615;&#29992;&#26469;&#21306;&#20998;&#25345;&#20037;&#21270;&#23545;&#35937;&#65306;&#22914;&#26524;<tt class="literal">catA.getId().equals(catB.getId())</tt>&#32467;&#26524;&#26159;true&#30340;&#35805;&#65292;&#36825;&#20004;&#20010;Cat&#23601;&#26159;&#30456;&#21516;&#30340;&#12290;&#36825;&#20010;&#27010;&#24565;&#31216;&#20026;<span class="emphasis"><em>&#25968;&#25454;&#24211;&#26631;&#35782;</em></span>&#12290;Hiernate&#38468;&#24102;&#20102;&#20960;&#31181;&#19981;&#21516;&#30340;&#26631;&#35782;&#31526;&#29983;&#25104;&#22120;&#65292;&#29992;&#20110;&#19981;&#21516;&#30340;&#22330;&#21512;&#65288;&#21253;&#25324;&#25968;&#25454;&#24211;&#26412;&#22320;&#30340;&#39034;&#24207;(sequence)&#29983;&#25104;&#22120;&#12289;hi/lo&#39640;&#20302;&#20301;&#26631;&#35782;&#27169;&#24335;&#12289;&#21644;&#31243;&#24207;&#33258;&#24049;&#23450;&#20041;&#30340;&#26631;&#35782;&#31526;&#65289;&#12290;&#25105;&#20204;&#22312;&#36825;&#37324;&#20351;&#29992;UUID&#29983;&#25104;&#22120;&#65288;&#21482;&#22312;&#27979;&#35797;&#26102;&#24314;&#35758;&#20351;&#29992;&#65292;&#22914;&#26524;&#20351;&#29992;&#25968;&#25454;&#24211;&#33258;&#24049;&#29983;&#25104;&#30340;&#25972;&#25968;&#31867;&#22411;&#30340;&#38190;&#20540;&#26356;&#22909;&#65289;&#65292;&#24182;&#25351;&#23450;<tt class="literal">CAT</tt>&#34920;&#20013;&#30340;<tt class="literal">CAT_ID</tt>&#23383;&#27573;&#65288;&#20316;&#20026;&#34920;&#30340;&#20027;&#38190;&#65289;&#23384;&#25918;&#29983;&#25104;&#30340;&#26631;&#35782;&#20540;&#12290;        </p><p>            <tt class="literal">Cat</tt>&#30340;&#20854;&#20182;&#23646;&#24615;&#37117;&#26144;&#23556;&#21040;&#21516;&#19968;&#20010;&#34920;&#30340;&#23383;&#27573;&#12290;&#23545;<tt class="literal">name</tt>&#23646;&#24615;&#26469;&#35828;&#65292;&#25105;&#20204;&#25226;&#23427;&#26174;&#24335;&#22320;&#22768;&#26126;&#26144;&#23556;&#21040;&#19968;&#20010;&#25968;&#25454;&#24211;&#23383;&#27573;&#12290;&#22914;&#26524;&#25968;&#25454;&#24211;schema&#26159;&#36890;&#36807;&#30001;&#26144;&#23556;&#22768;&#26126;&#20351;&#29992;Hibernate&#30340;<span class="emphasis"><em>SchemaExport</em></span>&#24037;&#20855;&#33258;&#21160;&#29983;&#25104;&#30340;&#65288;&#20316;&#20026;SQL DDL&#25351;&#20196;&#65289;&#30340;&#35805;&#65292;&#36825;&#23601;&#29305;&#21035;&#26377;&#29992;&#12290;&#25152;&#26377;&#20854;&#23427;&#30340;&#23646;&#24615;&#37117;&#29992;Hibernate&#30340;&#40664;&#35748;&#20540;&#26144;&#23556;&#65292;&#22823;&#22810;&#25968;&#24773;&#20917;&#20320;&#37117;&#20250;&#36825;&#26679;&#20570;&#12290;&#25968;&#25454;&#24211;&#20013;&#30340;<tt class="literal">CAT</tt>&#34920;&#30475;&#36215;&#26469;&#26159;&#36825;&#26679;&#30340;&#65306;        </p><pre class="programlisting"> Column |         Type          | Modifiers--------+-----------------------+----------- cat_id | character(32)         | not null name   | character varying(16) | not null sex    | character(1)          | weight | real                  |Indexes: cat_pkey primary key btree (cat_id)</pre><p>			&#20320;&#29616;&#22312;&#21487;&#20197;&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#20013;&#25163;&#24037;&#21019;&#24314;&#36825;&#20010;&#34920;&#20102;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#20351;&#29992;<tt class="literal">hbm2ddl</tt>&#24037;&#20855;&#25226;&#36825;&#20010;&#27493;&#39588;&#33258;&#21160;&#21270;&#65292;&#35831;&#21442;&#38405;<a href="toolsetguide.html" title="&#31532;&nbsp;21&nbsp;&#31456;&nbsp;&#24037;&#20855;&#31665;&#25351;&#21335;">&#31532;&nbsp;21&nbsp;&#31456; <i>&#24037;&#20855;&#31665;&#25351;&#21335;</i></a>&#12290;&#36825;&#20010;&#24037;&#20855;&#33021;&#22815;&#21019;&#24314;&#23436;&#25972;&#30340;SQL DDL&#65292;&#21253;&#25324;&#34920;&#23450;&#20041;&#65292;&#33258;&#23450;&#20041;&#30340;&#23383;&#27573;&#31867;&#22411;&#32422;&#26463;&#65292;&#24799;&#19968;&#32422;&#26463;&#21644;&#32034;&#24341;&#12290;    	</p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="quickstart-playingwithcats"></a>1.4.&nbsp;&#19982;Cat&#21516;&#20048;</h2></div></div><div></div></div><p>            &#25105;&#20204;&#29616;&#22312;&#21487;&#20197;&#24320;&#22987;Hibernate&#30340;<tt class="literal">Session</tt>&#20102;&#12290;&#23427;&#26159;&#19968;&#20010;<span class="emphasis"><em>&#25345;&#20037;&#21270;&#31649;&#29702;&#22120;</em></span>&#65292;&#25105;&#20204;&#36890;&#36807;&#23427;&#26469;&#20174;&#25968;&#25454;&#24211;&#20013;&#23384;&#21462;<tt class="literal">Cat</tt>&#12290;&#39318;&#20808;&#65292;&#25105;&#20204;&#35201;&#20174;<tt class="literal">SessionFactory</tt>&#20013;&#33719;&#21462;&#19968;&#20010;<tt class="literal">Session</tt>&#65288;Hibernate&#30340;&#24037;&#20316;&#21333;&#20803;&#65289;&#12290;        </p><pre class="programlisting">SessionFactory sessionFactory =            new Configuration().configure().buildSessionFactory();</pre><p>		&#36890;&#36807;&#23545;<tt class="literal">configure()</tt>&#30340;&#35843;&#29992;&#26469;&#35013;&#36733;<tt class="literal">hibernate.cfg.xml</tt>&#37197;&#32622;&#25991;&#20214;,&#24182;&#21021;&#22987;&#21270;&#25104;&#19968;&#20010;<tt class="literal">Configuration</tt>&#23454;&#20363;&#12290;						&#22312;&#21019;&#24314; <tt class="literal">SessionFactory</tt><span class="emphasis"><em>&#20043;&#21069;</em></span>&#65288;&#23427;&#26159;&#19981;&#21487;&#21464;&#30340;&#65289;&#65292;&#20320;&#21487;&#20197;&#35775;&#38382;<tt class="literal">Configuration</tt>&#26469;&#35774;&#32622;&#20854;&#20182;&#23646;&#24615;&#65288;&#29978;&#33267;&#20462;&#25913;&#26144;&#23556;&#30340;&#20803;&#25968;&#25454;&#65289;&#12290;&#25105;&#20204;&#24212;&#35813;&#22312;&#21738;&#20799;&#21019;&#24314;<tt class="literal">SessionFactory</tt>&#65292;&#22312;&#25105;&#20204;&#30340;&#31243;&#24207;&#20013;&#21448;&#22914;&#20309;&#35775;&#38382;&#23427;&#21602;&#65311;			<tt class="literal">SessionFactory</tt>&#36890;&#24120;&#21482;&#26159;&#34987;&#21021;&#22987;&#21270;&#19968;&#27425;&#65292;&#27604;&#22914;&#35828;&#36890;&#36807;&#19968;&#20010;<span class="emphasis"><em>load-on-startup</em></span> servlet&#30340;&#26469;&#21021;&#22987;&#21270;&#12290;&#36825;&#24847;&#21619;&#30528;&#20320;&#19981;&#24212;&#35813;&#22312;serlvet&#20013;&#25226;&#23427;&#20316;&#20026;&#19968;&#20010;&#23454;&#20363;&#21464;&#37327;&#26469;&#25345;&#26377;&#65292;&#32780;&#24212;&#35813;&#25918;&#22312;&#20854;&#20182;&#22320;&#26041;&#12290;&#36827;&#19968;&#27493;&#30340;&#35828;&#65292;&#25105;&#20204;&#38656;&#35201;&#20351;&#29992;<span class="emphasis"><em>&#21333;&#20363;&#65288;Singleton&#65289;</em></span>&#27169;&#24335;&#65292;&#25105;&#20204;&#25165;&#33021;&#26356;&#23481;&#26131;&#30340;&#22312;&#31243;&#24207;&#20013;&#35775;&#38382;<tt class="literal">SessionFactory</tt>&#12290;&#19979;&#38754;&#30340;&#26041;&#27861;&#23601;&#21516;&#26102;&#35299;&#20915;&#20102;&#20004;&#20010;&#38382;&#39064;&#65306;&#23545;<tt class="literal">SessionFactory</tt>&#30340;&#21021;&#22987;&#37197;&#32622;&#19982;&#20415;&#25463;&#20351;&#29992;&#12290;		</p><p>		    &#25105;&#20204;&#23454;&#29616;&#19968;&#20010;<tt class="literal">HibernateUtil</tt>&#36741;&#21161;&#31867;&#65306;		</p><pre class="programlisting">import org.hibernate.*;import org.hibernate.cfg.*;public class HibernateUtil {    private static Log log = LogFactory.getLog(HibernateUtil.class);    private static final SessionFactory sessionFactory;    static {        try {            // Create the SessionFactory            sessionFactory = new Configuration().configure().buildSessionFactory();        } catch (Throwable ex) {            // Make sure you log the exception, as it might be swallowed            log.error("Initial SessionFactory creation failed.", ex);            throw new ExceptionInInitializerError(ex);        }    }    public static final ThreadLocal session = new ThreadLocal();    public static Session currentSession()  {        Session s = (Session) session.get();        // Open a new Session, if this Thread has none yet        if (s == null) {            s = sessionFactory.openSession();            session.set(s);        }        return s;    }    public static void closeSession() {        Session s = (Session) session.get();        if (s != null)            s.close();        session.set(null);    }}</pre><p>			&#36825;&#20010;&#31867;&#19981;&#20294;&#22312;&#23427;&#30340;&#38745;&#24577;&#21021;&#22987;&#22120;&#20013;&#20351;&#29992;&#20102;<tt class="literal">SessionFactory</tt>&#65292;&#36824;&#20351;&#29992;&#20102;&#19968;&#20010;<tt class="literal">ThreadLocal</tt>&#21464;&#37327;&#26469;&#20445;&#23384;<tt class="literal">Session</tt>&#20570;&#20026;&#24403;&#21069;&#24037;&#20316;&#32447;&#31243;&#12290;&#22312;&#20320;&#20351;&#29992;&#36825;&#20010;&#36741;&#21161;&#31867;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#20320;&#29702;&#35299;&#20102;thread-local&#21464;&#37327;&#36825;&#20010;Java&#27010;&#24565;&#12290;&#20320;&#21487;&#20197;&#22312;<tt class="literal">CaveatEmptor</tt>(http://caveatemptor.hibernate.org/)&#19978;&#25214;&#21040;&#19968;&#20010;&#26356;&#21152;&#22797;&#26434;&#21644;&#24378;&#22823;&#30340; <tt class="literal">HibernateUtil</tt>&#12290;	    </p><p>            <tt class="literal">SessionFactory</tt>&#26159;&#23433;&#20840;&#32447;&#31243;&#65292;&#21487;&#20197;&#30001;&#24456;&#22810;&#32447;&#31243;&#24182;&#21457;&#35775;&#38382;&#24182;&#33719;&#21462;&#21040;<tt class="literal">Sessions</tt>&#12290;&#21333;&#20010;<tt class="literal">Session</tt>&#19981;&#26159;&#23433;&#20840;&#32447;&#31243;&#23545;&#35937;&#65292;&#23427;&#21482;&#20195;&#34920;&#19982;&#25968;&#25454;&#24211;&#20043;&#38388;&#30340;&#19968;&#27425;&#25805;&#20316;&#12290;<tt class="literal">Session</tt>&#36890;&#36807;<tt class="literal">SessionFactory</tt>&#33719;&#24471;&#24182;&#22312;&#25152;&#26377;&#30340;&#24037;&#20316;&#23436;&#25104;&#21518;&#20851;&#38381;&#12290;&#22312;&#20320;servlet&#30340;<tt class="literal">process()</tt>&#20013;&#21487;&#20197;&#35937;&#26159;&#36825;&#20040;&#20889;&#30340;(&#30465;&#30053;&#20102;&#24322;&#24120;&#24773;&#20917;&#22788;&#29702;):        </p><pre class="programlisting">Session session = HibernateUtil.currentSession();Transaction tx= session.beginTransaction();Cat princess = new Cat();princess.setName("Princess");princess.setSex('F');princess.setWeight(7.4f);session.save(princess);tx.commit();HibernateUtil.closeSession();</pre><p>            &#22312;&#19968;&#20010;<tt class="literal">Session</tt>&#20013;&#65292;&#27599;&#20010;&#25968;&#25454;&#24211;&#25805;&#20316;&#37117;&#26159;&#22312;&#19968;&#20010;&#20107;&#21153;(transaction)&#20013;&#36827;&#34892;&#30340;&#65292;&#36825;&#26679;&#23601;&#21487;&#20197;&#38548;&#31163;&#24320;&#19981;&#21516;&#30340;&#25805;&#20316;&#65288;&#29978;&#33267;&#21253;&#25324;&#21482;&#35835;&#25805;&#20316;&#65289;&#12290;&#25105;&#20204;&#20351;&#29992;Hibernate&#30340;<tt class="literal">Transaction</tt> API&#26469;&#20174;&#24213;&#23618;&#30340;&#20107;&#21153;&#31574;&#30053;&#20013;&#65288;&#26412;&#20363;&#20013;&#26159;JDBC&#20107;&#21153;&#65289;&#33073;&#36523;&#20986;&#26469;&#12290;&#36825;&#26679;&#65292;&#25105;&#20204;&#23601;&#19981;&#38656;&#35201;&#26356;&#25913;&#20219;&#20309;&#28304;&#20195;&#30721;&#65292;&#23601;&#21487;&#20197;&#25226;&#25105;&#20204;&#30340;&#31243;&#24207;&#37096;&#32626;&#21040;&#19968;&#20010;&#30001;&#23481;&#22120;&#31649;&#29702;&#20107;&#21153;&#30340;&#29615;&#22659;&#20013;&#21435;&#65288;&#20351;&#29992;JTA&#65289;&#12290;        </p><p>			&#36825;&#26679;&#20320;&#23601;&#21487;&#20197;&#38543;&#24515;&#25152;&#27442;&#30340;&#22810;&#27425;&#35843;&#29992;<tt class="literal">HibernateUtil.currentSession();</tt>&#65292;&#20320;&#27599;&#27425;&#37117;&#20250;&#24471;&#21040;&#21516;&#19968;&#20010;&#24403;&#21069;&#32447;&#31243;&#30340;<tt class="literal">Session</tt>&#12290;&#19981;&#31649;&#26159;&#22312;&#20320;&#30340;servlet&#20195;&#30721;&#20013;&#65292;&#25110;&#32773;&#22312;servlet filter&#20013;&#36824;&#26159;&#22312;HTTP&#32467;&#26524;&#36820;&#22238;&#20043;&#21069;&#65292;&#20320;&#37117;&#24517;&#39035;&#30830;&#20445;&#36825;&#20010;<tt class="literal">Session</tt>&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#35775;&#38382;&#24037;&#20316;&#23436;&#25104;&#21518;&#20851;&#38381;&#12290;&#36825;&#26679;&#20570;&#36824;&#26377;&#19968;&#20010;&#22909;&#22788;&#23601;&#26159;&#21487;&#20197;&#23481;&#26131;&#30340;&#20351;&#29992;&#24310;&#36831;&#35013;&#36733;&#65288;lazy initialization&#65289;&#65306;<tt class="literal">Session</tt>&#22312;&#28210;&#26579;view&#23618;&#30340;&#26102;&#20505;&#20173;&#28982;&#25171;&#24320;&#30528;&#30340;&#65292;&#25152;&#20197;&#20320;&#22312;&#36941;&#21382;&#24403;&#21069;&#23545;&#35937;&#22270;&#30340;&#26102;&#20505;&#21487;&#20197;&#35013;&#36733;&#25152;&#38656;&#30340;&#23545;&#35937;&#12290;        </p><p>            Hibernate&#26377;&#19981;&#21516;&#30340;&#26041;&#27861;&#29992;&#26469;&#20174;&#25968;&#25454;&#24211;&#20013;&#21462;&#22238;&#23545;&#35937;&#12290;&#26368;&#28789;&#27963;&#30340;&#26041;&#24335;&#23601;&#26159;&#20351;&#29992;Hibernate&#26597;&#35810;&#35821;&#35328;(HQL),&#36825;&#26159;&#19968;&#31181;&#23481;&#26131;&#23398;&#20064;&#30340;&#35821;&#35328;&#65292;&#26159;&#23545;SQL&#30340;&#38754;&#21521;&#23545;&#35937;&#30340;&#24378;&#22823;&#25193;&#23637;&#12290;        </p><pre class="programlisting">Transaction tx= session.beginTransaction();Query query = session.createQuery("select c from Cat as c where c.sex = :sex");query.setCharacter("sex", 'F');for (Iterator it = query.iterate(); it.hasNext();) {    Cat cat = (Cat) it.next();    out.println("Female Cat: " + cat.getName() );}tx.commit();</pre><p>            Hibernate&#20063;&#25552;&#20379;&#19968;&#31181;&#38754;&#21521;&#23545;&#35937;&#30340;<span class="emphasis"><em>&#25353;&#26465;&#20214;&#26597;&#35810;</em></span>API&#65292;&#21487;&#20197;&#25191;&#34892;&#31616;&#27905;&#23433;&#20840;&#31867;&#22411;&#30340;&#26597;&#35810;&#12290;&#24403;&#28982;&#65292;Hibernate&#22312;&#25152;&#26377;&#19982;&#25968;&#25454;&#24211;&#30340;&#20132;&#20114;&#20013;&#37117;&#20351;&#29992;<tt class="literal">PrepatedStatement</tt>&#21644;&#21442;&#25968;&#32465;&#23450;&#12290;&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;Hibernate&#30340;&#30452;&#25509;SQL&#26597;&#35810;&#29305;&#24615;&#65292;&#25110;&#32773;&#22312;&#29305;&#27530;&#24773;&#20917;&#19979;&#20174;<tt class="literal">Session</tt>&#33719;&#21462;&#19968;&#20010;&#21407;&#22987;&#30340;JDBC&#36830;&#25509;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="quickstart-summary"></a>1.5.&nbsp;&#32467;&#35821;</h2></div></div><div></div></div><p>            &#22312;&#36825;&#20010;&#30701;&#23567;&#30340;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23545;Hibernate&#27973;&#23581;&#21363;&#27490;&#12290;&#35831;&#27880;&#24847;&#25105;&#20204;&#27809;&#26377;&#22312;&#20363;&#23376;&#20013;&#21253;&#21547;&#20219;&#20309;servlet&#30456;&#20851;&#20195;&#30721;&#12290;&#20320;&#24517;&#39035;&#33258;&#34892;&#32534;&#20889;servlet&#65292;&#24182;&#25554;&#20837;&#36866;&#21512;&#20320;&#30340;Hibernate&#20195;&#30721;&#12290;        </p><p>			&#35831;&#35760;&#20303;Hibernate&#20316;&#20026;&#19968;&#20010;&#25968;&#25454;&#24211;&#35775;&#38382;&#23618;&#65292;&#26159;&#19982;&#20320;&#30340;&#31243;&#24207;&#32039;&#23494;&#30456;&#20851;&#30340;&#12290;&#36890;&#24120;&#24773;&#20917;&#19979;&#65292;&#25152;&#26377;&#20854;&#20182;&#23618;&#27425;&#37117;&#20381;&#36182;&#25345;&#20037;&#26426;&#21046;&#12290;&#35831;&#30830;&#20449;&#20320;&#29702;&#35299;&#20102;&#36825;&#31181;&#35774;&#35745;&#30340;&#20869;&#28085;&#12290;	    </p><p>         &#33509;&#24076;&#26395;&#23398;&#20064;&#26356;&#22797;&#26434;&#30340;&#20363;&#23376;,&#35831;&#21442;&#38405;http://caveatemptor.hibernate.org/ &#12290;&#22312; http://www.hibernate.org/Documentation &#20063;&#21487;&#20197;&#24471;&#21040;&#20854;&#20182;&#25945;&#31243;&#30340;&#38142;&#25509;&#12290;                    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="preface.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="tutorial.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#21069;&#35328;&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;2&nbsp;&#31456;&nbsp;	Hibernate&#20837;&#38376;	</td></tr></table></div></body></html>

⌨️ 快捷键说明

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