﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-原始森林中的一个狼窝-随笔分类-Hibernate 知识点滴</title><link>http://www.blogjava.net/carcajou1127/category/16497.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 10:31:44 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 10:31:44 GMT</pubDate><ttl>60</ttl><item><title>Hibernate Day_1</title><link>http://www.blogjava.net/carcajou1127/archive/2006/10/19/76236.html</link><dc:creator>白洋</dc:creator><author>白洋</author><pubDate>Thu, 19 Oct 2006 10:28:00 GMT</pubDate><guid>http://www.blogjava.net/carcajou1127/archive/2006/10/19/76236.html</guid><wfw:comment>http://www.blogjava.net/carcajou1127/comments/76236.html</wfw:comment><comments>http://www.blogjava.net/carcajou1127/archive/2006/10/19/76236.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/carcajou1127/comments/commentRss/76236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/carcajou1127/services/trackbacks/76236.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">英文的直意是冬眠的意思。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个面向</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境的对象</span>
				<span lang="EN-US">/</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关系数据映射工具，注意，这是一种技术工具。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27.1pt; mso-char-indent-count: 2.57">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="COLOR: #3366ff">ORM</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="COLOR: #3366ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
						<span lang="EN-US" style="COLOR: #3366ff">object relational mapping</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="COLOR: #3366ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个术语表示一种技术，用来把对象模型表示的对象映射到基于</span>
				<span lang="EN-US">SQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的关系模型数据结构中去。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上的这些概念性的东西，然我感觉和</span>
				<span lang="EN-US">.NET Framework 2.0 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的强类型数据集的作用差不多，但听研究过的人说，要比</span>
				<span lang="EN-US">Microsoft</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的那个好得多，</span>
				<span lang="EN-US">Microsoft</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的强类型数据集我用过，感觉爽，既然有说</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">更好，那已经更是过瘾，我心里痒痒的呀。继续。。。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中有这样一句“对于以数据为中心的程序来说，他们往往只在数据库中使用存储过程来实现商业逻辑，</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可能不是最好的解决方案。”这个是一定啦，</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是桥梁，又不是万金油，当然是在数据库中直接用存储过程处理商业逻辑是最好的啦。我做过，直接在存储过程中搞定一切东西，传一个参数过去，然后所有的运算都在</span>
				<span lang="EN-US">SQL Server 2000</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的存储过程中完成，那叫一个爽，比把数据读到程序里，然后用</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">处理，再把数据传回去要快得多，但是在</span>
				<span lang="EN-US">SQL Server 2000</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里直接用存储过程来完成这样的工作，难度还是不小的，调试就是最大的难点，反正我是没整明白有啥办法可以调试的，我就用最原始、最保靠，据说是也是有效的调试方法</span>
				<span lang="EN-US">print</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来完成。哈哈。够晕的吧！继续看。。。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">现在看到了一个“<b style="mso-bidi-font-weight: normal"><span style="COLOR: #3366ff">持久化实体类</span></b>”这个类是符合</span>
				<span lang="EN-US">JavaBean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的编写要求。并且要给它一个唯一的标识符，这是为了我们使用</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供的所有特性。大多数程序，特别是</span>
				<span lang="EN-US">web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">程序，都需要通过标识符来区分对象。但，通常我们不会直接操作对象的标识符，所以他的</span>
				<span lang="EN-US">setter</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法的访问级别是</span>
				<span lang="EN-US">private</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要知道怎样去加载（</span>
				<span lang="EN-US">load</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）和存储（</span>
				<span lang="EN-US">store</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）持久化类的对象，<b style="mso-bidi-font-weight: normal"><span style="COLOR: #3366ff">映射文件</span></b>，它就是告诉</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，应该访问数据库里面的哪个表，已经应该使用表里面哪些字段。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不会从</span>
				<span lang="EN-US">web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">加载</span>
				<span lang="EN-US">DTD</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，但它会首先在应用程序的</span>
				<span lang="EN-US">classpath</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中查找。</span>
				<span lang="EN-US">DTD</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件包含在</span>
				<span lang="EN-US">hibernate3.jar</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里，同时在</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发布包的</span>
				<span lang="EN-US">src/</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">映射文件的长相：</span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">Event.hbm.xml<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">&lt;hibernate-mapping&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">     </span>&lt;<span style="COLOR: blue">class</span><span style="COLOR: red">name</span>="events.Event" <span style="COLOR: red">table</span>="Events"&gt; </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">            </span>&lt;<span style="COLOR: blue">id</span><span style="COLOR: red">name</span>="id" <span style="COLOR: red">column</span>="eventID"&gt; </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 3">                   </span>&lt;<span style="COLOR: blue">generator</span><span style="COLOR: red">class</span>="native"/&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">
						<span style="mso-tab-count: 2">            </span>&lt;/id&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">            </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="date" <span style="COLOR: red">type</span>="timestamp" <span style="COLOR: red">column</span>="eventDate"/&gt; </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">            </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="title" <span style="COLOR: red">column</span>="eventTitle"/&gt; </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">
						<span style="mso-tab-count: 1">     </span>&lt;/class&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">&lt;/hibernate-mapping&gt; <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27.1pt; mso-char-indent-count: 2.57">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说明：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">class</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示持久化类；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">id</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示唯一标识；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">property</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示类的属性字段；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">name</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是持久化类名；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">table</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是数据表名；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">column</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是数据字段名；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">generator</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是唯一标识的生成方式；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">type</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是映射的数据类型。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置文件的长相：</span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">hibernate.cfg.xml<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">&lt;!-- by MyEclipse Hibernate tool integration. --&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">&lt;hibernate-configuration&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">
						<span style="mso-spacerun: yes">    </span>&lt;session-factory&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;!-- properties --&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="connection.driver_class"&gt;oracle.jdbc.driver.OracleDriver&lt;/<span style="COLOR: blue">property</span>&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="connection.url"&gt;jdbc:oracle:thin:@localhost:1521:test&lt;/<span style="COLOR: blue">property</span>&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="connection.username"&gt;system&lt;/<span style="COLOR: blue">property</span>&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">            </span>
						<span style="mso-spacerun: yes"> </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="connection.password"&gt;manager&lt;/<span style="COLOR: blue">property</span>&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">                                                                     </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;<span style="COLOR: blue">property</span><span style="COLOR: red">name</span>="dialect"&gt;net.sf.hibernate.dialect.OracleDialect&lt;/<span style="COLOR: blue">property</span>&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>
						<span style="mso-spacerun: yes">                                            </span>
						<span style="mso-spacerun: yes">                 </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;!-- mapping files --&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">        </span>&lt;<span style="COLOR: blue">mapping</span><span style="COLOR: red">resource</span>="events/Event.hbm.xml"/&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>
						<span style="COLOR: blue">
								<span style="mso-spacerun: yes"> </span>&lt;/session-factory&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">&lt;/hibernate-configuration&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US" style="COLOR: blue">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27.1pt; mso-char-indent-count: 2.57">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说明：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Session-factory</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：特定数据库全局工厂</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">connection.driver_class</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：驱动类</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">connection.url</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：连接路径</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">connection.username</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用户名</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">connection.password</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：用户密码</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">mapping resource</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：持久化类加入映射文件</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用</span>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="COLOR: blue">ant</span>
				</b>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建</span>
				<span lang="EN-US">build.xml</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我理解他就是管理文件位置的，就是拷贝，为编译运行做准备。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">SessionFactory</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个线程安全的全局对象，只需要被实例化一次，一个</span>
				<span lang="EN-US">Session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代表一个单线程的单元操作。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这时又来了一个辅助类</span>
				<span lang="EN-US">HibernateUtil</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，负责启动</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和更好的操作</span>
				<span lang="EN-US">SessionFactory</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最后配置一个日志系统，</span>
				<span lang="EN-US">Log4j</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</span>
				<span lang="EN-US">JDK 1.4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都可以选择。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">看到了一种编程模型：线程绑定（</span>
				<span lang="EN-US">thread-bound</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; mso-char-indent-count: 2.57">
				<span lang="EN-US">Session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在第一次被使用，或第一次调用</span>
				<span lang="EN-US">getCurrentSession()</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候，其生命周期就开始了，然后它被</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">绑定到当前线程。当事务运行结束的时候，不管是提交、回滚，</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都会把</span>
				<span lang="EN-US">Session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从当前线程剥离，并且关闭它。</span>
		</p>
<img src ="http://www.blogjava.net/carcajou1127/aggbug/76236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/carcajou1127/" target="_blank">白洋</a> 2006-10-19 18:28 <a href="http://www.blogjava.net/carcajou1127/archive/2006/10/19/76236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>