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

📄 quickstart.html

📁 hibernate的一点学习资料!
💻 HTML
📖 第 1 页 / 共 3 页
字号:
        &lt;property name="weight"/&gt;    &lt;/class&gt;&lt;/hibernate-mapping&gt;</pre><p>            &#27599;&#20010;&#25345;&#20037;&#21270;&#31867;&#37117;&#38656;&#35201;&#19968;&#20010;&#26631;&#35782;&#23646;&#24615;&#65288;&#23454;&#38469;&#19978;&#65292;&#21482;&#26159;&#21738;&#20123;&#20195;&#34920;&#19968;&#25163;&#23545;&#35937;&#30340;&#31867;&#65292;&#32780;&#19981;&#26159;&#20195;&#34920;&#20540;&#23545;&#35937;&#30340;&#31867;&#65292;&#21518;&#32773;&#20250;&#34987;&#26144;&#23556;&#31216;&#20026;&#19968;&#25163;&#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;&#20004;&#21482;&#29483;&#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;&#21644;hi/lo&#39640;&#20302;&#20301;&#26631;&#35782;&#27169;&#24335;&#65289;&#12290;&#25105;&#20204;&#22312;&#36825;&#37324;&#20351;&#29992;UUID&#29983;&#25104;&#22120;&#65292;&#24182;&#25351;&#23450;<tt class="literal">CAT</tt>&#34920;&#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;&#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;&#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;&#65292;&#36825;&#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></div><p>			&#20320;&#29616;&#22312;&#21487;&#20197;&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#20013;&#39318;&#20808;&#21019;&#24314;&#36825;&#20010;&#34920;&#20102;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#20351;&#29992;SchemaExport&#24037;&#20855;&#25226;&#36825;&#20010;&#27493;&#39588;&#33258;&#21160;&#21270;&#65292;&#35831;&#21442;&#38405;<a href="toolsetguide.html" title="Chapter&nbsp;19.&nbsp;&#24037;&#20855;&#31665;&#25351;&#21335;">Chapter&nbsp;19, <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 class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e318"></a>1.4.&nbsp;&#19982;&#29483;&#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;&#25105;&#20204;&#29992;&#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>(Hibernate&#30340;&#24037;&#20316;&#21333;&#20803;&#65289;&#12290;        </p><pre class="programlisting">SessionFactory sessionFactory =            new Configuration().configure().buildSessionFactory();</pre><p>			<tt class="literal">SessionFactory</tt>&#36127;&#36131;&#19968;&#20010;&#25968;&#25454;&#24211;&#65292;&#20063;&#21482;&#23545;&#24212;&#19968;&#20010;XML&#37197;&#32622;&#25991;&#20214;&#65288;<tt class="literal">hibernate.cfg.xml</tt>&#65289;&#12290;		</p><p>			&#36825;&#31687;&#25945;&#31243;&#30340;&#20851;&#27880;&#28857;&#22312;&#20110;&#37197;&#32622;Tomcat&#30340;JDBC&#36830;&#25509;&#65292;&#32465;&#23450;&#21040;JNDI&#19978;&#65292;&#20197;&#21450;Hibernate&#30340;&#22522;&#30784;&#37197;&#32622;&#12290;&#20320;&#21487;&#20197;&#29992;&#21916;&#27426;&#30340;&#20219;&#20309;&#26041;&#24335;&#32534;&#20889;&#19968;&#20010;Servlet,&#21253;&#21547;&#19979;&#38754;&#30340;&#20195;&#30721;&#65292;&#21482;&#35201;&#30830;&#20445;<tt class="literal">SessionFactory</tt>&#21482;&#21019;&#24314;&#19968;&#27425;&#12290;&#20063;&#23601;&#26159;&#35828;&#20320;&#19981;&#33021;&#25226;&#23427;&#20316;&#20026;&#20320;&#30340;Serlvet &#30340;&#23454;&#20363;&#21464;&#37327;&#12290;&#19968;&#20010;&#22909;&#21150;&#27861;&#26159;&#29992;&#22312;&#36741;&#21161;&#31867;&#20013;&#29992;&#19968;&#20010;&#38745;&#24577;&#30340;<tt class="literal">SessionFactory</tt>&#65292;&#20363;&#22914;&#36825;&#26679;&#65306;		</p><pre class="programlisting">import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class HibernateUtil {    private static final SessionFactory sessionFactory;    static {        try {            sessionFactory = new Configuration().configure().buildSessionFactory();        } catch (HibernateException ex) {            throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);        }    }    public static final ThreadLocal session = new ThreadLocal();    public static Session currentSession() throws HibernateException {        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() throws HibernateException {        Session s = (Session) session.get();        session.set(null);        if (s != null)            s.close();    }}</pre><p>			&#36825;&#20010;&#31867;&#19981;&#20294;&#22312;&#23427;&#30340;&#38745;&#24577;&#23646;&#24615;&#20013;&#20351;&#29992;&#20102;<tt class="literal">SessionFactory</tt>&#65292;&#36824;&#20351;&#29992;&#20102;<tt class="literal">ThreadLocal</tt>&#26469;&#20026;&#24403;&#21069;&#24037;&#20316;&#32447;&#31243;&#20445;&#23384;<tt class="literal">Session</tt>&#12290;		</p><p>            <tt class="literal">Session</tt>&#19981;&#26159;&#32447;&#31243;&#23433;&#20840;&#30340;&#65292;&#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>&#25171;&#24320;&#65292;&#22312;&#25152;&#26377;&#30340;&#24037;&#20316;&#23436;&#25104;&#21518;&#65292;&#38656;&#35201;&#20851;&#38381;&#65306;        </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;<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;&#12290;&#36825;&#26679;&#65292;&#22914;&#26524;&#38656;&#35201;&#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)&#65292;&#25105;&#20204;&#23601;&#19981;&#38656;&#35201;&#26356;&#25913;&#28304;&#20195;&#30721;&#12290;&#35831;&#27880;&#24847;&#65292;&#25105;&#20204;&#19978;&#38754;&#30340;&#20363;&#23376;&#27809;&#26377;&#22788;&#29702;&#20219;&#20309;&#24322;&#24120;&#12290;        </p><p>			&#20063;&#35831;&#27880;&#24847;&#65292;&#20320;&#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;&#20320;&#24517;&#39035;&#30830;&#20445;<tt class="literal">Session</tt>&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#20107;&#21153;&#23436;&#25104;&#21518;&#20851;&#38381;&#65292;&#19981;&#31649;&#26159;&#22312;&#20320;&#30340;Servlet&#20195;&#30721;&#20013;&#65292;&#25110;&#32773;&#22312;ServletFilter&#20013;&#65292;HTTP&#32467;&#26524;&#36820;&#22238;&#20043;&#21069;&#12290;        </p><p>            Hibernate&#26377;&#19981;&#21516;&#30340;&#26041;&#27861;&#26469;&#20174;&#25968;&#25454;&#24211;&#20013;&#21462;&#22238;&#23545;&#35937;&#12290;&#26368;&#28789;&#27963;&#30340;&#26041;&#24335;&#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 cat from Cat as cat where cat.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;&#20844;&#24335;&#21270;&#30340;&#31867;&#22411;&#23433;&#20840;&#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;        </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e410"></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;&#21482;&#25551;&#32472;&#20102;Hibernate&#30340;&#22522;&#26412;&#38754;&#30446;&#12290;&#35831;&#27880;&#24847;&#25105;&#20204;&#27809;&#26377;&#22312;&#20363;&#23376;&#20013;&#21253;&#21547;Servlet&#30456;&#20851;&#20195;&#30721;&#12290;&#20320;&#24517;&#39035;&#33258;&#34892;&#32534;&#20889;Servlet&#65292;&#28982;&#21518;&#25226;&#20320;&#35748;&#20026;&#21512;&#36866;&#30340;Hibernate&#20195;&#30721;&#25554;&#20837;&#12290;        </p><p>			&#35831;&#35760;&#20303;Hibernate&#20316;&#20026;&#25968;&#25454;&#24211;&#35775;&#38382;&#23618;&#65292;&#26159;&#19982;&#20320;&#30340;&#31243;&#24207;&#32039;&#23494;&#30456;&#20851;&#30340;&#12290;&#19968;&#33324;&#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;&#21547;&#20041;&#12290;	    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pr01.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="architecture.html">Next</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">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;2.&nbsp;&#20307;&#31995;&#32467;&#26500;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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