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

📄 cmp3.html

📁 j2eePDF格式的电子书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  <head>    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />    <meta http-equiv="Content-Style-Type" content="text/css" />    <title>The PlayerEJB Code</title>    <link rel="StyleSheet" href="document.css" type="text/css" media="all" />    <link rel="StyleSheet" href="catalog.css" type="text/css" media="all" />    <link rel="Table of Contents" href="J2EETutorialTOC.html" />    <link rel="Previous" href="CMP2.html" />    <link rel="Next" href="CMP4.html" />    <link rel="Index" href="J2EETutorialIX.html" />  </head>  <body>    <table width="550" summary="layout" id="SummaryNotReq1">      <tr>	<td align="left" valign="center">	<font size="-1">	<a href="http://java.sun.com/j2ee/1.4/download.html#tutorial" target="_blank">Download</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/faq.html" target="_blank">FAQ</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/history.html" target="_blank">History</a>	</td>        <td align="center" valign="center"><a accesskey="p" href="CMP2.html"><img id="LongDescNotReq1" src="images/PrevArrow.gif" width="26" height="26" border="0" alt="Prev" /></a><a accesskey="c" href="J2EETutorialFront.html"><img id="LongDescNotReq1" src="images/UpArrow.gif" width="26" height="26" border="0" alt="Home" /></a><a accesskey="n" href="CMP4.html"><img id="LongDescNotReq3" src="images/NextArrow.gif" width="26" height="26" border="0" alt="Next" /></a><a accesskey="i" href="J2EETutorialIX.html"></a>        </td>	<td align="right" valign="center">	<font size="-1">	<a href="http://java.sun.com/j2ee/1.4/docs/api/index.html" target="_blank">API</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/search.html" target="_blank">Search</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/sendusmail.html" target="_blank">Feedback</a></font>	</font>	</td>      </tr>    </table>    <img src="images/blueline.gif" width="550" height="8" ALIGN="BOTTOM" NATURALSIZEFLAG="3" ALT="Divider">    <blockquote><a name="wp79761"> </a><h2 class="pHeading1">The PlayerEJB Code</h2><a name="wp79762"> </a><p class="pBody">The <code class="cCode">PlayerEJB</code> entity bean represents a player in a sports league. Like any entity bean with container-managed persistence, <code class="cCode">PlayerEJB</code> needs the following code:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp79763"> </a><div class="pSmartList1"><li>Entity bean class (<code class="cCode">PlayerBean</code>) </li></div><a name="wp79764"> </a><div class="pSmartList1"><li>Local home interface (<code class="cCode">LocalPlayerHome</code>) </li></div><a name="wp79765"> </a><div class="pSmartList1"><li>Local interface (<code class="cCode">LocalPlayer</code>)</li></div></ul></div><a name="wp79766"> </a><p class="pBody">The source code for this example is in the <code class="cCode">&lt;</code><code class="cVariable">INSTALL</code><code class="cCode">&gt;/j2eetutorial14/examples/ejb/cmproster</code> directory. </p><a name="wp79767"> </a><h3 class="pHeading2">Entity Bean Class</h3><a name="wp79768"> </a><p class="pBody">The code of the entity bean class must meet the container-managed persistence syntax requirements. First, the class must be defined as <code class="cCode">public</code> and <code class="cCode">abstract</code>. Second, the class must implement the following:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp79769"> </a><div class="pSmartList1"><li>The <code class="cCode">EntityBean</code> interface </li></div><a name="wp79770"> </a><div class="pSmartList1"><li>Zero or more <code class="cCode">ejbCreate</code> and <code class="cCode">ejbPostCreate</code> methods</li></div><a name="wp79771"> </a><div class="pSmartList1"><li>The <code class="cCode">get</code> and <code class="cCode">set</code> access methods, defined as <code class="cCode">abstract</code>, for the persistent and relationship fields</li></div><a name="wp79772"> </a><div class="pSmartList1"><li>Any select methods, defining them as <code class="cCode">abstract</code></li></div><a name="wp79773"> </a><div class="pSmartList1"><li>The home methods</li></div><a name="wp79774"> </a><div class="pSmartList1"><li>The business methods</li></div></ul></div><a name="wp79775"> </a><p class="pBody">The entity bean class must not implement these methods:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp79777"> </a><div class="pSmartList1"><li>The finder methods</li></div><a name="wp79778"> </a><div class="pSmartList1"><li>The <code class="cCode">finalize</code> method</li></div></ul></div><a name="wp79780"> </a><h4 class="pHeading3">Differences between Container-Managed and Bean-Managed Code</h4><a name="wp79781"> </a><p class="pBody">Because it contains no calls to access the database, an entity bean with container-managed persistence requires a lot less code than one with bean-managed persistence. For example, the <code class="cCode">PlayerBean.java</code> source file discussed in this chapter is much smaller than the <code class="cCode">SavingsAccountBean.java</code> code documented in Chapter&nbsp;<a  href="BMP.html#wp80422"></a><a  href="BMP.html#wp79663">21</a>. <a  href="CMP3.html#wp79797">Table 22-1</a> compares the code of the two types of entity beans.</p><div align="left"><table border="1" summary="Coding Differences between Persistent Types" id="wp79797">  <caption><a name="wp79797"> </a><div class="pTableTitle">Table 22-1   Coding Differences between Persistent Types&nbsp;</div></caption>  <tr align="center">    <th><a name="wp79803"> </a><div class="pCellHeading">Difference</div></th>    <th><a name="wp79805"> </a><div class="pCellHeading">Container-Managed</div></th>    <th><a name="wp79807"> </a><div class="pCellHeading">Bean-Managed</div></th></tr>  <tr align="left">    <td><a name="wp79809"> </a><div class="pCellBody">Class definition</div></td>    <td><a name="wp79811"> </a><div class="pCellBody">Abstract</div></td>    <td><a name="wp79813"> </a><div class="pCellBody">Not abstract</div></td></tr>  <tr align="left">    <td><a name="wp79815"> </a><div class="pCellBody">Database access calls</div></td>    <td><a name="wp79817"> </a><div class="pCellBody">Handled by container</div></td>    <td><a name="wp79819"> </a><div class="pCellBody">Coded by developers</div></td></tr>  <tr align="left">    <td><a name="wp79821"> </a><div class="pCellBody">Persistent state</div></td>    <td><a name="wp79823"> </a><div class="pCellBody">Represented by virtual persistent fields</div></td>    <td><a name="wp79825"> </a><div class="pCellBody">Coded as instance variables</div></td></tr>  <tr align="left">    <td><a name="wp79827"> </a><div class="pCellBody">Access methods for persistent and relationship fields</div></td>    <td><a name="wp79829"> </a><div class="pCellBody">Required</div></td>    <td><a name="wp79831"> </a><div class="pCellBody">None</div></td></tr>  <tr align="left">    <td><a name="wp79833"> </a><div class="pCellBody"><code class="cCode">findByPrimaryKey</code> method</div></td>    <td><a name="wp79835"> </a><div class="pCellBody">Handled by container</div></td>    <td><a name="wp79837"> </a><div class="pCellBody">Coded by developers</div></td></tr>  <tr align="left">    <td><a name="wp79839"> </a><div class="pCellBody">Customized finder methods</div></td>    <td><a name="wp79841"> </a><div class="pCellBody">Handled by container, but the developer must define the EJB&nbsp;QL) queries</div></td>    <td><a name="wp79843"> </a><div class="pCellBody">Coded by developers</div></td></tr>  <tr align="left">    <td><a name="wp79845"> </a><div class="pCellBody">Select methods</div></td>    <td><a name="wp79847"> </a><div class="pCellBody">Handled by container</div></td>    <td><a name="wp79849"> </a><div class="pCellBody">None</div></td></tr>  <tr align="left">    <td><a name="wp79851"> </a><div class="pCellBody">Return value of <code class="cCode">ejbCreate</code></div></td>    <td><a name="wp79853"> </a><div class="pCellBody"><code class="cCode">null</code></div></td>    <td><a name="wp79855"> </a><div class="pCellBody">Must be the primary key</div></td></tr></table></div><p class="pBody"></p><a name="wp79856"> </a><p class="pBody">Note that for both types of persistence, the rules for implementing business and home methods are the same. See the sections <a  href="BMP2.html#wp79828">The Business Methods</a> and <a  href="BMP2.html#wp79843">The Home Methods</a> in Chapter&nbsp;<a  href="BMP.html#wp79663">21</a><a  href="BMP.html#wp80422"></a>.</p><a name="wp79869"> </a><h4 class="pHeading3">Access Methods</h4><a name="wp79870"> </a><p class="pBody">An entity bean with container-managed persistence has persistent and relationship fields. These fields are virtual, so you do not code them in the class as instance variables. Instead, you specify them in the bean's deployment descriptor. To permit access to the fields, you define abstract <code class="cCode">get</code> and <code class="cCode">set</code> methods in the entity bean class.</p><a name="wp79874"> </a><h5 class="pHeading4">Access Methods for Persistent Fields</h5><a name="wp79876"> </a><p class="pBody">The EJB container automatically performs the database storage and retrieval of the bean's persistent fields. The deployment descriptor of <code class="cCode">PlayerEJB</code> specifies the following persistent fields:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp79877"> </a><div class="pSmartList1"><li><code class="cCode">playerId</code> (primary key)</li></div><a name="wp79878"> </a><div class="pSmartList1"><li><code class="cCode">name </code></li></div><a name="wp79879"> </a><div class="pSmartList1"><li><code class="cCode">position </code></li></div><a name="wp79880"> </a><div class="pSmartList1"><li><code class="cCode">salary</code></li></div></ul></div><a name="wp79882"> </a><p class="pBody">

⌨️ 快捷键说明

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