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

📄 session-configuration.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>&#31532;&nbsp;3&nbsp;&#31456;&nbsp;SessionFactory&#37197;&#32622;</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="up" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="previous" href="architecture.html" title="&#31532;&nbsp;2&nbsp;&#31456;&nbsp;&#20307;&#31995;&#32467;&#26500;"><link rel="next" href="persistent-classes.html" title="&#31532;&nbsp;4&nbsp;&#31456;&nbsp;&#25345;&#20037;&#21270;&#31867;(Persistent Classes)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">&#31532;&nbsp;3&nbsp;&#31456;&nbsp;SessionFactory&#37197;&#32622;</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="architecture.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="persistent-classes.html">&#19979;&#19968;&#39029;</a></td></tr></table><hr></div><div class="chapter" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title"><a name="session-configuration"></a>&#31532;&nbsp;3&nbsp;&#31456;&nbsp;SessionFactory&#37197;&#32622;</h2></div></div><div></div></div><p>        &#22240;&#20026;Hibernate&#34987;&#35774;&#35745;&#20026;&#21487;&#20197;&#22312;&#35768;&#22810;&#19981;&#21516;&#29615;&#22659;&#19979;&#24037;&#20316;&#65292;&#25152;&#20197;&#23427;&#26377;&#24456;&#22810;&#37197;&#32622;&#21442;&#25968;&#12290;&#24184;&#36816;&#30340;&#26159;&#65292;&#22823;&#37096;&#20998;&#37117;&#24050;&#32463;&#26377;&#40664;&#35748;&#20540;&#20102;&#65292;Hibernate&#21457;&#34892;&#21253;&#20013;&#36824;&#38468;&#24102;&#26377;&#31034;&#20363;&#30340;<tt class="literal">hibernate.properties</tt>&#25991;&#20214;&#65292;&#23427;&#28436;&#31034;&#20102;&#19968;&#20123;&#21487;&#21464;&#30340;&#21442;&#25968;&#12290;&#19968;&#33324;&#20320;&#21482;&#38656;&#35201;&#25226;&#36825;&#20010;&#25991;&#20214;&#25918;&#21040;&#20320;&#30340;classpath&#65292;&#37197;&#32622;&#19968;&#19979;&#21363;&#21487;&#12290;    </p><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration-programmatic"></a>3.1.&nbsp;&#21487;&#32534;&#31243;&#37197;&#32622;&#26041;&#24335;</h2></div></div><div></div></div><p>            <tt class="literal">net.sf.hibernate.cfg.Configuration</tt>&#30340;&#19968;&#20010;&#23454;&#20363;&#20195;&#34920;&#20102;&#24212;&#29992;&#31243;&#24207;&#20013;&#25152;&#26377;&#30340;Java&#31867;&#21040;SQL&#25968;&#25454;&#24211;&#30340;&#26144;&#23556;&#30340;&#38598;&#21512;&#12290;<tt class="literal">Configuration</tt>&#29992;&#20110;&#26500;&#36896;&#19968;&#20010;(&#19981;&#21487;&#21464;&#30340;)<tt class="literal">SessionFactory</tt>&#12290;&#36825;&#20123;&#26144;&#23556;&#26159;&#20174;&#19968;&#20123;XML&#26144;&#23556;&#25991;&#20214;&#20013;&#32534;&#35793;&#24471;&#26469;&#30340;&#12290;        </p><p>                        &#20320;&#21487;&#20197;&#24471;&#21040;&#19968;&#20010;<tt class="literal">Configuration</tt>&#30340;&#23454;&#20363;&#65292;&#30452;&#25509;&#23454;&#20363;&#21270;&#23427;&#21363;&#21487;&#12290;&#19979;&#38754;&#26377;&#19968;&#20010;&#20363;&#23376;&#65292;&#29992;&#26469;&#20174;&#20004;&#20010;XML&#37197;&#32622;&#25991;&#20214;&#65288;&#20301;&#20110;classpath&#65289;&#20013;&#30340;&#26144;&#23556;&#20013;&#21021;&#22987;&#21270;&#65306;        </p><pre class="programlisting">Configuration cfg = new Configuration()    .addFile("Item.hbm.xml")    .addFile("Bid.hbm.xml");</pre><p>            &#21478;&#22806;&#19968;&#20010;&#65288;&#26576;&#20123;&#26102;&#20505;&#26356;&#22909;&#30340;&#65289;&#26041;&#27861;&#26159;&#35753;Hibernate&#33258;&#34892;&#29992;<tt class="literal">getResourceAsStream()</tt>&#26469;&#35013;&#36733;&#26144;&#23556;&#25991;&#20214;&#12290;        </p><pre class="programlisting">Configuration cfg = new Configuration()    .addClass(org.hibernate.auction.Item.class)    .addClass(org.hibernate.auction.Bid.class);</pre><p>            Hibernate &#23601;&#20250;&#22312;classpath&#20013;&#23547;&#25214;&#21483;&#20570;<tt class="literal">/org/hibernate/autcion/Item.hbm.xml</tt>&#12289;<tt class="literal">/org/hibernate/autcion/Bid.hbm.xml</tt>&#30340;&#26144;&#23556;&#25991;&#20214;&#12290;&#36825;&#31181;&#26041;&#27861;&#21462;&#28040;&#20102;&#25152;&#26377;&#23545;&#25991;&#20214;&#21517;&#30340;&#30828;&#32534;&#30721;&#12290;        </p><p>            <tt class="literal">Configuration</tt>&#20063;&#21487;&#20197;&#25351;&#23450;&#19968;&#20123;&#21487;&#36873;&#30340;&#37197;&#32622;&#39033;&#65306;        </p><pre class="programlisting">Properties props = new Properties();...Configuration cfg = new Configuration()    .addClass(org.hibernate.auction.Item.class)    .addClass(org.hibernate.auction.Bid.class)    .setProperties(props);</pre><p>            <tt class="literal">Configuration</tt>&#26159;&#20165;&#22312;&#37197;&#32622;&#26399;&#20351;&#29992;&#30340;&#23545;&#35937;&#65292;&#20174;&#31532;&#19968;&#20010;<tt class="literal">SessionFactory</tt>&#24320;&#22987;&#24314;&#31435;&#30340;&#26102;&#20505;&#65292;&#23427;&#23601;&#22833;&#25928;&#20102;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration-sessionfactory"></a>3.2.&nbsp;&#33719;&#21462;SessionFactory</h2></div></div><div></div></div><p>            &#24403;&#25152;&#26377;&#30340;&#26144;&#23556;&#37117;&#34987;<tt class="literal">Configuration</tt>&#35299;&#26512;&#20043;&#21518;&#65292;&#24212;&#29992;&#31243;&#24207;&#20026;&#20102;&#24471;&#21040;<tt class="literal">Session</tt>&#23454;&#20363;&#65292;&#24517;&#39035;&#20808;&#24471;&#21040;&#23427;&#30340;&#24037;&#21378;&#12290;&#36825;&#20010;&#24037;&#21378;&#24212;&#35813;&#26159;&#34987;&#24212;&#29992;&#31243;&#24207;&#30340;&#25152;&#26377;&#32447;&#31243;&#20849;&#20139;&#30340;&#65306;        </p><pre class="programlisting">SessionFactory sessions = cfg.buildSessionFactory();</pre><p>			&#24403;&#28982;&#65292;Hibernate&#24182;&#19981;&#31105;&#27490;&#20320;&#30340;&#31243;&#24207;&#23454;&#20363;&#21270;&#22810;&#20010;<tt class="literal">SessionFactory</tt>&#12290;&#22312;&#20320;&#20351;&#29992;&#19981;&#27490;&#19968;&#20010;&#25968;&#25454;&#24211;&#30340;&#26102;&#20505;&#65292;&#36825;&#23601;&#26377;&#29992;&#20102;&#12290;				</p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration-userjdbc"></a>3.3.&nbsp;&#29992;&#25143;&#33258;&#34892;&#25552;&#20379;JDBC&#36830;&#25509;</h2></div></div><div></div></div><p>            <tt class="literal">SessionFactory</tt>&#21487;&#20197;&#20351;&#29992;&#19968;&#20010;&#29992;&#25143;&#33258;&#34892;&#25552;&#20379;&#30340;JDBC&#36830;&#25509;&#26469;&#25171;&#24320;&#19968;&#20010;<tt class="literal">Session</tt>&#12290;&#36825;&#31181;&#35774;&#35745;&#21487;&#20197;&#35753;&#24212;&#29992;&#31243;&#24207;&#26469;&#33258;&#24049;&#31649;&#29702;JDBC&#36830;&#25509;:        </p><pre class="programlisting">java.sql.Connection conn = datasource.getConnection();Session session = sessions.openSession(conn);// do some data access work</pre><p>        &#24212;&#29992;&#31243;&#24207;&#24517;&#39035;&#23567;&#24515;&#65292;&#19981;&#33021;&#22312;&#21516;&#19968;&#20010;&#36830;&#25509;&#19978;&#25171;&#24320;&#20004;&#20010;&#24182;&#34892;&#30340;session!        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration-hibernatejdbc"></a>3.4.&nbsp;Hibernate&#25552;&#20379;&#30340;JDBC&#36830;&#25509;</h2></div></div><div></div></div><p>            &#21478;&#19968;&#31181;&#26041;&#27861;&#23601;&#26159;&#65292;&#20320;&#21487;&#20197;&#35753;<tt class="literal">SessionFactory</tt>&#26367;&#20320;&#25171;&#24320;&#36830;&#25509;&#12290;<tt class="literal">SessionFactory</tt>&#24517;&#39035;&#20107;&#20808;&#30693;&#36947;JDBC&#36830;&#25509;&#30340;&#21442;&#25968;&#65292;&#26377;&#20960;&#31181;&#19981;&#21516;&#30340;&#26041;&#27861;&#35774;&#32622;&#21442;&#25968;&#65306;        </p><div class="orderedlist"><ol type="1" compact><li><p>                    &#20256;&#36882;&#19968;&#20010;<tt class="literal">java.util.Properties</tt>&#21040;<tt class="literal">Configuration.setProperties()</tt>&#26041;&#27861;&#12290;                </p></li><li><p>                    &#22312;classpath&#30340;&#26681;&#30446;&#24405;&#20013;&#25552;&#20379;<tt class="literal">hibernate.properties</tt>&#25991;&#20214;&#12290;                </p></li><li><p>                    &#36890;&#36807;<tt class="literal">java -Dproperty=value</tt>&#25351;&#23450;&#20351;&#29992;<tt class="literal">&#31995;&#32479;&#23646;&#24615;</tt>&#12290;                </p></li><li><p>                    &#22312;<tt class="literal">hibernate.cfg.xml</tt>&#25991;&#20214;&#20013;&#21253;&#21547;<tt class="literal">&lt;property&gt;</tt>&#20803;&#32032;&#12290;&#35814;&#24773;&#35265;&#21518;&#12290;                </p></li></ol></div><p>            &#22914;&#26524;&#20320;&#20351;&#29992;&#36825;&#31181;&#26041;&#27861;&#65292;&#25171;&#24320;&#19968;&#20010;<tt class="literal">Session</tt>&#26159;&#38750;&#24120;&#31616;&#21333;&#30340;&#65306;        </p><pre class="programlisting">Session session = sessions.openSession(); // open a new Session// do some data access work, a JDBC connection will be used on demand</pre><p>            &#25152;&#26377;&#30340;Hibernate&#23646;&#24615;&#21517;&#21644;&#32422;&#26463;&#37117;&#22312;<tt class="literal">net.sf.hibernate.cfg.Environment</tt>&#31867;&#20013;&#23450;&#20041;&#12290;&#25105;&#20204;&#35752;&#35770;&#19968;&#19979;JDBC&#36830;&#25509;&#37197;&#32622;&#26368;&#37325;&#35201;&#30340;&#20960;&#39033;&#35774;&#32622;&#65306;        </p><p>            &#20551;&#33509;&#20320;&#35774;&#32622;&#20102;&#22914;&#19979;&#30340;&#23646;&#24615;&#65292;Hibernate&#20250;&#20351;&#29992;<tt class="literal">java.sql.DriverManager</tt>&#26469;&#24471;&#21040;&#36830;&#25509;&#65292;&#24182;&#24314;&#31435;&#36830;&#25509;&#27744;&#65306;        </p><div class="table"><a name="d0e770"></a><p class="title"><b>&#34920;&nbsp;3.1.&nbsp;Hibernate JDBC&#23646;&#24615;</b></p><table summary="Hibernate JDBC&#23646;&#24615;" border="1"><colgroup><col><col></colgroup><thead><tr><th>&#23646;&#24615;&#21517;</th><th>&#29992;&#36884;</th></tr></thead><tbody><tr><td><tt class="literal">hibernate.connection.driver_class</tt></td><td><span class="emphasis"><em>jdbc&#39537;&#21160;&#31867;</em></span></td></tr><tr><td><tt class="literal">hibernate.connection.url</tt></td><td><span class="emphasis"><em>jdbc URL</em></span></td></tr><tr><td><tt class="literal">hibernate.connection.username</tt></td><td><span class="emphasis"><em>&#25968;&#25454;&#24211;&#29992;&#25143;&#21517;</em></span></td></tr><tr><td><tt class="literal">hibernate.connection.password</tt></td><td><span class="emphasis"><em>&#25968;&#25454;&#24211;&#29992;&#25143;&#23494;&#30721;</em></span></td></tr><tr><td><tt class="literal">hibernate.connection.pool_size</tt></td><td><span class="emphasis"><em>&#36830;&#25509;&#27744;&#23481;&#37327;&#26368;&#22823;&#25968;</em></span></td></tr></tbody></table></div><p>            Hibernate&#30340;&#36830;&#25509;&#27744;&#31639;&#27861;&#26159;&#38750;&#24120;&#21487;&#37197;&#32622;&#30340;&#12290;&#23427;&#30340;&#29992;&#36884;&#26159;&#35753;&#20320;&#19978;&#25163;&#65292;&#20294;&#26159;<span class="emphasis"><em>&#24182;&#38750;&#35753;&#20320;&#22312;&#29983;&#20135;&#31995;&#32479;&#20013;&#20351;&#29992;&#30340;</em></span>,&#29978;&#33267;&#19981;&#26159;&#29992;&#26469;&#20570;&#24615;&#33021;&#27979;&#35797;&#30340;&#12290;&#22914;&#26524;&#20026;&#20102;&#24471;&#21040;&#26368;&#22909;&#30340;&#24615;&#33021;&#21644;&#21487;&#38752;&#24615;&#38656;&#35201;&#20351;&#29992;&#31532;&#19977;&#26041;&#30340;&#27744;&#65292;&#35831;&#29992;&#20320;&#36830;&#25509;&#27744;&#29305;&#23450;&#30340;&#35774;&#32622;&#26469;&#21462;&#20195;<tt class="literal">hibernate.connection.pool_size</tt>&#23646;&#24615;&#12290;        </p><p>            C3P0&#26159;&#38543;Hibernate&#21457;&#34892;&#21253;&#19968;&#36215;&#21457;&#24067;&#30340;&#19968;&#20010;&#24320;&#25918;&#28304;&#20195;&#30721;JDBC&#36830;&#25509;&#27744;&#65292;&#20320;&#21487;&#20197;&#22312;<tt class="literal">lib</tt> &#30446;&#24405;&#20013;&#25214;&#21040;&#12290;&#20551;&#33509;&#20320;&#35774;&#32622;&#20102;<tt class="literal">hibernate.c3p0.*</tt> &#23646;&#24615;&#65292;Hibernate&#20250;&#20351;&#29992;&#20869;&#32622;&#30340;<tt class="literal">C3P0ConnectionProvider</tt>&#20316;&#20026;&#36830;&#25509;&#27744;&#12290;            &#23545;Apache DBCP&#21644;Proxool&#30340;&#25903;&#25345;&#20063;&#26159;&#20869;&#32622;&#30340;&#12290;&#20320;&#24517;&#39035;&#35774;&#32622;<tt class="literal">hibernate.dbcp.*</tt>&#23646;&#24615; &#65288;DBCP&#36830;&#25509;&#27744;&#23646;&#24615;&#65289;&#26469;&#25171;&#24320;<tt class="literal">DBCPConnectionProvider</tt>&#12290;&#22914;&#26524;&#25171;&#24320;<tt class="literal">hibernate.dbcp.ps.*</tt> (DBCP &#35821;&#21477;&#32531;&#23384;&#23646;&#24615;)&#21487;&#20197;&#20351;&#29992;Prepared statement&#32531;&#23384;&#65288;&#39640;&#24230;&#25512;&#33616;&#65289;&#12290;&#35201;&#30693;&#36947;&#23427;&#20204;&#30340;&#21547;&#20041;&#65292;&#35831;&#26597;&#38405;Apache commons-pool&#30340;&#25991;&#26723;&#12290;&#22914;&#26524;&#20320;&#24819;&#35201;&#29992;Proxool,&#20320;&#38656;&#35201;&#35774;&#32622;<tt class="literal">hibernate.proxool.*</tt>&#31995;&#21015;&#23646;&#24615;&#12290;        </p><p>            &#19979;&#38754;&#26159;&#20351;&#29992;C3P0&#30340;&#19968;&#20010;&#20363;&#23376;&#65306;        </p><a name="c3p0-configuration"></a><pre class="programlisting">hibernate.connection.driver_class = org.postgresql.Driverhibernate.connection.url = jdbc:postgresql://localhost/mydatabasehibernate.connection.username = myuserhibernate.connection.password = secrethibernate.c3p0.min_size=5hibernate.c3p0.max_size=20hibernate.c3p0.timeout=1800hibernate.c3p0.max_statements=50hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect</pre><p>            &#22312;Application Server&#20869;&#20351;&#29992;&#26102;&#65292;Hibernate&#21487;&#20197;&#20174;JNDI&#20013;&#27880;&#20876;&#30340;<tt class="literal">javax.sql.Datasource</tt>&#21462;&#24471;&#36830;&#25509;&#12290;&#38656;&#35201;&#35774;&#32622;&#22914;&#19979;&#23646;&#24615;&#65306;        </p><div class="table"><a name="d0e858"></a><p class="title"><b>&#34920;&nbsp;3.2.&nbsp;Hibernate &#25968;&#25454;&#28304;&#65288;Datasource&#65289;&#23646;&#24615;</b></p><table summary="Hibernate &#25968;&#25454;&#28304;&#65288;Datasource&#65289;&#23646;&#24615;" border="1"><colgroup><col><col></colgroup><thead><tr><th>&#23646;&#24615;&#21517;</th><th>&#29992;&#36884;</th></tr></thead><tbody><tr><td><tt class="literal">hibernate.connection.datasource</tt></td><td><span class="emphasis"><em>datasource JNDI &#21517;&#23383;</em></span></td></tr><tr><td><tt class="literal">hibernate.jndi.url</tt></td><td><span class="emphasis"><em>JNDI &#25552;&#20379;&#32773;&#30340;URL</em></span> (&#21487;&#36873;)                </td></tr><tr><td><tt class="literal">hibernate.jndi.class</tt></td><td><span class="emphasis"><em>JNDI <tt class="literal">InitialContextFactory</tt>&#30340;&#31867;&#21517;</em></span> (&#21487;&#36873;)                </td></tr><tr><td><tt class="literal">hibernate.connection.username</tt></td><td><span class="emphasis"><em>&#25968;&#25454;&#24211;&#29992;&#25143;&#21517;</em></span> (&#21487;&#36873;)                </td></tr><tr><td><tt class="literal">hibernate.connection.password</tt></td><td><span class="emphasis"><em>&#25968;&#25454;&#24211;&#23494;&#30721;</em></span> (&#21487;&#36873;)                </td></tr></tbody></table></div><p>            &#19979;&#38754;&#26159;&#19968;&#20010;&#20351;&#29992;&#24212;&#29992;&#26381;&#21153;&#22120;&#25552;&#20379;&#30340;JNDI&#25968;&#25454;&#28304;&#30340;&#20363;&#23376;:

⌨️ 快捷键说明

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