                                                             <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>JSF CRUD Web Application with Java Persistence API - NetBeans IDE Sample Applications</title>
    <meta name="description" content="A sample web application that accesses a database and displays the results in JSF pages using the Java Persistence API (JPA).">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <link rel="stylesheet" type="text/css" href="../../netbeans.css" media="screen">
    <link rel="stylesheet" type="text/css" href="../netbeans_sample.css" media="screen">
</head>
<body>
<h1>Get Inspired. Get Started.</h1>
<table class="b-none" width="100%">
<tr class="valign-top">
<td>
    
    <!-- +++++++++++++++++ begin insert new content +++++++++++++++++ -->
                
    <!-- +++++ Add Sample Description and Image +++++ -->
    <div id="sampledesc"><!-- begin sampledesc -->
        <h2>JSF CRUD Web Application with Java Persistence API</h2>
        
        <div id="samplethumb"><!-- add sample image and link here -->
            <img src="../../images_www/sample-catalog/javaee-crud.jpg" alt="" align="top">
        </div>
        
        <p>This simple CRUD (Create Retrieve Update Delete) application demonstrates the use of Java Persistence APIs based on the new Java Persistence specification in conjunction with JavaServer Faces.
        The sample creates a simple CRUD (Create Retrieve Update Delete) application.</p>
        <!-- Remove list when demo or tutorial unavailable -->
                    
    </div><!-- end sampledesc -->

                
    <!-- +++++ Add Required Software Here +++++ -->
    <br style="clear:both;">
    <div style="float:left;width:45%;">
        <h3><b>Get NetBeans IDE</b></h3>
        <br>
        <a href="../../downloads/index.html">
            <img src="../../images_www/v5/download-nb-button3.gif" alt="Download NetBeans" class="align-left b-none" height="27" width="165" style="margin:4px 10px 4px 0;clear:right;">
        </a>
        <br style="clear:both;">
        <br>
        <p class="orange font-13">NetBeans IDE 6.9, 7.0, 7.1, 7.2, Java EE bundle</p>
    </div>
    
    <!-- +++++  Add Sample Location Here +++++ -->
    <div style="float:right;width:45%;">
        <h3><b>Get the Sample</b></h3>
        <!-- Commenting out image because it's only used for samples on the Update Center
                    <img src="../../images_www/v5/universal-download.png" alt="Download NetBeans" class="align-left" class="b-none" height="32" width="32"> -->
        <br style="clear:both;">
        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> This sample comes bundled with the Java EE bundle of NetBeans IDE</p>
        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> Choose: File &gt; New Project &gt; Samples &gt; Java Web &gt; JSF JPA CRUD</p>
    </div>
    <br style="clear:both;">
    
    <!-- +++++++++++++++++ end insert new content +++++++++++++++++ -->

    <div class="b-top"><br>
    <img src="../../images_www/sample-catalog/update-center.png" alt="Download NetBeans" class="align-left b-none" height="32" width="32">
             <h3><b>&nbsp;NetBeans Update Center</b></h3>
        <p>&nbsp;</p>
        <p>The Update Center is your source for accessing the latest samples
            highlighting emerging technologies, plug-ins from NetBeans and our
            partners, and patches to make sure your IDE is running smoothly. As
        fast as we make it, we'll ship it to you via the Update Center.</p>
        <p><b>Start now by having the latest Top 5 samples delivered  directly to your IDE.</b></p>
        <br>
        <div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20JSF%20JPA%20CRUD%20Web%20Application%20Sample">Send Feedback on This Tutorial</a></div>
    </div>
</td>                                    
<td style="padding: 25px 0px 0px 20px;" width="170" class="b-left">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="400" width="154">
    <script type="text/javascript">
            document.write('<param name="movie" value="../../images_www/sample-catalog/menu.swf'+window.location.search+'" />');
    </script>
    <param name="quality" value="best" />
    <param name="play" value="true" />
    <script type="text/javascript">
            document.write('<embed height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="../../images_www/sample-catalog/menu.swf'+window.location.search+'" type="application/x-shockwave-flash" width="154" quality="best" play="true">');
    </script>
    </embed> 
</object>
<p class="align-center"><small><a href="master-index.html">View all samples</a></small></p>
</td>
</tr>

</table>
</body>
</html>