?? myeclipse_hibernate_quickstart_zh_cn.html
字號(hào):
<p class="normal"><br>
完成了 5.2 部分的配置向?qū)Ш? Hibernate 配置文件將會(huì)自動(dòng)打開(kāi).
<br>
<em><strong>如果你在添加功能過(guò)程中跳過(guò)了數(shù)據(jù)源連接的配置, 你可以現(xiàn)在來(lái)完成它, 也可以跳轉(zhuǎn)到 <a href="#properties">添加屬性</a></strong></em>.</p>
<p>自定義配置文件里面的需要連接到我們的數(shù)據(jù)庫(kù)的信息.</p>
<ol>
<li>選中 <strong>Use JDBC Driver</strong> 選項(xiàng).<br>
我們將指定 Database
Explorer 中的 JDBC 驅(qū)動(dòng). 如果你尚未配置 JDBC 驅(qū)動(dòng), 請(qǐng)閱讀 <a href="http://127.0.0.1:61071/help/topic/com.genuitec.eclipse.sqlexplorer.doc/doc/quickstarts/dbexplorer/index.html">
Database Explorer 快速入門(mén)</a> 然后在進(jìn)行下面的操作之前配置一個(gè). </li>
<li>從 <strong>Connection Profile</strong>
下拉框中選中一個(gè)配置.<br>
如果你只是配置了 JDBC 驅(qū)動(dòng)但是沒(méi)有配置一個(gè)連接屬性, 你可以選擇 <em>New Profile</em> 按鈕來(lái)創(chuàng)建一個(gè)新的連接配置. 如果你已經(jīng)有了一個(gè)連接配置, 當(dāng)你選擇其中的一個(gè)之后將會(huì)自動(dòng)填充下面的 4 個(gè)輸入框中的內(nèi).<br>
</li>
<li>點(diǎn)擊 <strong>Copy JDBC Driver and add to classpath...</strong> 鏈接. </li>
<li>為你的數(shù)據(jù)庫(kù)選中正確的 <strong>Hibernate Dialect</strong>.</li>
</ol>
你的配置頁(yè)面將會(huì)顯示為這樣的內(nèi)容:
<blockquote style="margin-right: 0px;" dir="ltr">
<p class="normal"><img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-workbench-oracle1.gif" border="0"><br>
<font class="figureCaption">圖 8. Hibernate 配置文件, 配置了 Oracle
連接</font></p>
</blockquote>
<a name="properties"></a>
<br>
你可以使用 Properties 部分來(lái)添加和修改屬性.
<blockquote style="margin-right: 0px;" dir="ltr">
<p class="normal">
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-addproperty.gif" align="top" border="0">
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-workbench-dialog.gif" border="0"><br>
<font class="figureCaption">圖 9. 添加屬性</font></p>
</blockquote>
<br>
Mappings 部分可以讓你添加也許已經(jīng)存在項(xiàng)目中的映射文件. 另外, 從 Package Explorer <strong>拖放</strong> 映射文件到這個(gè)輸入框也可以達(dá)到同樣的效果.
<blockquote style="margin-right: 0px;" dir="ltr">
<p class="normal">
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-addmapping.gif" align="top" border="0">
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-workbench-mapping.gif" border="0">
<br><br><img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-mapping-dnd-annot.gif" border="0"><br>
<font class="figureCaption">圖 10. 添加映射文件 </font></p>
</blockquote>
圖 11 上述操作完成后的 Hibernate 配置文件的源代碼.
<blockquote style="margin-right: 0px;" dir="ltr">
<p class="normal"><img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-workbench-editor.gif" border="0"><br>
<font class="figureCaption">圖 11. Hibernate 配置文件</font></p>
</blockquote>
<h3>5.4 <a name="5-4"></a>創(chuàng)建 Hibernate Java 表映射 </h3>
<p class="normal"><br>
這個(gè)部分展示了使用 MyEclipse Hibernate
工具來(lái)反向工程生成 Java 數(shù)據(jù)對(duì)象并從現(xiàn)有的數(shù)據(jù)庫(kù)表格生成映射的過(guò)程.</p>
<ol>
<li>
<div>打開(kāi) <strong>MyEclipse Hibernate 透視圖. </strong>
從主菜單欄, 選中 <strong>Window > Open Perspective >
Other > MyEclipse Hibernate</strong></div>
</li><li>
<div>選中你在 Hibernae 配置中所使用的數(shù)據(jù)庫(kù)連接屬性</div>
</li><li>
<div>瀏覽數(shù)據(jù)庫(kù)的目錄結(jié)構(gòu), 直到你找到了一個(gè)想要?jiǎng)?chuàng)建 Hibernate 映射的表格/實(shí)體<br>
<br>
<strong><u>注意:</u></strong> 在我們的例子里我們使用了 <strong>TEST</strong> 數(shù)據(jù)庫(kù)下的 <strong>ECHO_MESSAGE</strong>
表格; 對(duì)于其它數(shù)據(jù)庫(kù)和表格的操作過(guò)程基本上都是一樣的.<br>
<br>
</div>
</li><li>
<div>右鍵點(diǎn)擊表格然后選中 <strong>Hibernate
Reverse Engineering,</strong> 如圖 12 所示. 這將啟動(dòng) Hibernate
Reverse Engineering 向?qū)?<br>
另外, 你也可以從 DB Browser 那里拖動(dòng)表格, 然后將它放到 Hibernate 配置編輯器里也可以啟動(dòng)這個(gè)向?qū)?
<br>
<br>
<strong><u>注意:</u></strong> 你可以在 <strong>DB Browser</strong> 中選中多個(gè)表格然后同時(shí)對(duì)它們進(jìn)行反向工程.
<br>
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-createmapping.gif" border="0"><br>
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-createmapping-dnd-annot.gif" border="0"><br>
<font class="figureCaption">圖 12. 對(duì) ECHO_MESSAGE 數(shù)據(jù)庫(kù)表格啟動(dòng) Hibernate Reverse Engineering 向?qū)?lt;/font><br>
<br>
<strong>Hibernate Reverse Engineering</strong> 向?qū)б还灿?3 頁(yè).<br>
<br>
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-mapping-1.gif" border="0"><br>
<font class="figureCaption">圖 13. Hibernate Reverse Engineering 向?qū)?- 頁(yè)面 1</font><br>
</div>
</li>
</ol>
<ol start="5">
<li>點(diǎn)擊<strong>Java src folder</strong> 右側(cè)的 <strong>Browse...</strong> 按鈕來(lái)查看可用的 Hibernate 項(xiàng)目以及源碼目錄, 這些目錄將用來(lái)存放最終生成的文件.
<br>
選擇 <strong>HibernateDemo</strong> 項(xiàng)目中的<strong> src</strong> 文件夾. </li>
<li>點(diǎn)擊 <strong>Java package </strong>輸入框右側(cè)的 <strong>Browse...</strong> 按鈕然后選中包 <strong>com.genuitec.hibernate</strong></li>
<li>完成如圖 13 所示的向?qū)е械钠溆嗟膬?nèi)容然后選擇 <strong>Next.</strong>
<br>
<strong><br>
<u>注意:</u></strong> 向?qū)У牡?2 頁(yè)和第 3 頁(yè)用來(lái)自定義反向工程處理過(guò)程.
<br>
當(dāng)然也可以現(xiàn)在就直接點(diǎn)擊 Finish 按鈕開(kāi)始處理過(guò)程, 不對(duì)后兩頁(yè)的設(shè)置進(jìn)行任何自定義.
<br><br>
<font size="3"><strong>表 4 - Hibernate Reverse Engineering 向?qū)?- 第 1</strong></font><strong> 頁(yè)</strong> <br>
<br>
<table summary="" border="1" cellpadding="1" cellspacing="1" width="600">
<tbody>
<tr>
<td><strong>選項(xiàng)</strong></td>
<td><strong>描述</strong></td>
</tr>
<tr>
<td>
<p align="left">
<strong>Java src folder<br>
</strong> </p> </td>
<td>
<p align="left">
選中映射文件, POJO 和 DAO 生成后所在的項(xiàng)目和源碼文件夾. </p> </td>
</tr>
<tr>
<td>
<p align="left">
<strong>Java package<br>
</strong> </p> </td>
<td>
<p align="left">映射文件, POJO 和 DAO 生成后所在的包.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Hibernate mapping file</strong></p> </td>
<td><p align="left">
從選中的表格生成映射文件.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Update hibernate configuration</strong></p> </td>
<td><p align="left">
將生成后的映射文件添加到 Hibernate 配置文件中.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Java Data Object </strong></p> </td>
<td><p align="left">
為映射文件和表格生成對(duì)應(yīng)的數(shù)據(jù)對(duì)象 (POJO).</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Create abstract class </strong></p> </td>
<td><p align="left">
為每個(gè)數(shù)據(jù)對(duì)象生成一個(gè)抽象的父類(lèi). 這個(gè)抽象類(lèi)將在以后的重新生成過(guò)程中覆蓋掉, 但是對(duì)應(yīng)的子類(lèi)將不會(huì)被覆蓋掉.
</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Base persistence class </strong></p> </td>
<td><p align="left">
如果需要的話, 輸入生成的 POJO 所要集成的父類(lèi)的完整名稱.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Java Data Access Object </strong></p> </td>
<td><p align="left">
生成便于訪問(wèn)映射后的類(lèi)和表格的數(shù)據(jù)訪問(wèn)對(duì)象. 用戶可以在 Basic, Spring 和
JNDI DAO 中選擇一種.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Generate precise findBy methods </strong></p> </td>
<td><p align="left">
為映射類(lèi)中的每個(gè)屬性生成一個(gè) "findBy" 方法.
<br>
例如 findByFirstName("name");</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Use custom templates </strong></p> </td>
<td><p align="left">
覆蓋 MyEclipse 的內(nèi)部 velocity 模版為你自己的版本.
<br>
參考 <a href="#5-5">使用模版來(lái)更好的調(diào)節(jié)生成的代碼</a> 來(lái)獲取更多信息.</p> </td>
</tr>
<tr>
<td><p align="left">
<strong>Template directory </strong></p> </td>
<td><p align="left">
包含了自定義模版的目錄樹(shù)的根節(jié)點(diǎn).</p> </td>
</tr>
</tbody>
</table>
<p>
<img alt="" src="MyEclipse_Hibernate_Quickstart_zh_CN_files/hibernate-mapping-2.gif" border="0"><br>
<font class="figureCaption">圖 14. Hibernate Reverse Engineering 向?qū)?- 第 2</font> 頁(yè) </p>
</li>
<li>第 2 頁(yè)可以使用默認(rèn)的設(shè)置, 選擇 <strong>Next.</strong>
<br>
<br>
<font size="3"><strong>表 5 - Hibernate Reverse Engineering 向?qū)?- 第 2 頁(yè) </strong></font><br>
<br>
<table summary="" border="1" cellpadding="1" cellspacing="1" width="600">
<tbody>
<tr>
<td><strong>選項(xiàng)</strong></td>
<td><strong>描述</strong></td>
</tr>
<tr>
<td>
<p align="left">
<strong>Rev-eng settings file<br> </strong> </p> </td>
<td>
<p align="left">
這個(gè)文件包含了反向工程的配置和選項(xiàng)以供以后使用. 點(diǎn)擊
<strong>Setup...</strong> 按鈕來(lái)選擇現(xiàn)有的文件或者創(chuàng)建一個(gè)新的文件.
<br>
<strong>如果找不到一個(gè)這樣的配置文件的話向?qū)?huì)自動(dòng)創(chuàng)建此文件.</strong> </p> </td>
</tr>
<tr>
<td>
<p align="left">
<strong>Custom rev-eng strategy<br> </strong> </p> </td>
<td>
<p align="left">
允許你指定一個(gè)自定義的反向工程策略類(lèi).
這個(gè)類(lèi)允許你用編程的方式來(lái)自定義反向工程處理過(guò)程的各個(gè)方面.
參考 <a href="#5-6">使用自定義反向工程策略</a> 來(lái)獲取詳細(xì)信息. </p> </td>
</tr>
<tr>
<td>
<p align="left">
<strong>Type Mapping</strong> </p> </td>
<td>
<p align="left">
決定是否在類(lèi)型映射屬性中使用 Java 或者 Hibernate 類(lèi)型, 例如 java.lang.String
對(duì)應(yīng) string. 這個(gè)設(shè)置只能在向?qū)У?3 頁(yè)的 <strong>Customized Type Mappings</strong> 列表中沒(méi)有指定更多信息時(shí)才能使用. </p> </td>
</tr>
<tr>
<td>
<p align="left">
<strong>ID Generator</strong> </p> </td>
<td>
<p align="left">
ID Generator 是 Hibernate 映射文件必須有的內(nèi)容. 它定義了持久類(lèi)實(shí)例的唯一主鍵生成器 Jaav 類(lèi). 參考
<a href="#resources">資源</a> 部分里面的 Hibernate 文檔鏈接, 里面描述了每個(gè) ID 生成器的詳細(xì)信息.
<br>
<strong>如果留空或者更詳細(xì)的配置在這個(gè)向?qū)У牡?3 頁(yè)沒(méi)有配置, Hibernate 映射引擎將自動(dòng)為你選擇一個(gè) ID 生成器.</strong> </p> </td>
</tr>
<tr>
<td>
<p align="left">
<strong>Generate basic typed composite IDs </strong> </p> </td>
<td>
<p align="left">
如果數(shù)據(jù)庫(kù)表格包含有多個(gè)列的主鍵, 將總是使用
<strong><復(fù)合主鍵></strong> 映射.
<br>
<br>
如果這個(gè)選項(xiàng)啟用并且有對(duì)應(yīng)的多個(gè)外鍵, 每個(gè)主鍵列將依然會(huì)被作為'簡(jiǎn)單的' 標(biāo)量 (string,
long, 等), 而不是引用到一個(gè)實(shí)體. 將會(huì)創(chuàng)建
<strong><many-to-one></strong> 元素, 但是它們將會(huì)標(biāo)記為非可更新和非可插入的字段.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -