Data Providers

Embed Size (px)

Citation preview

  • 7/28/2019 Data Providers

    1/21

    Working With Data Providers

    April 2006[Revision number: V2.1-1]Copyright 2006 Sun Microsystems, Inc.

    In this tutorial you build a two-page example application. The first page uses a data provider in a session bean to wrapan Enterprise JavaBean (enterprise bean) object to display data from a database. The second page uses a data providerin the page bean to wrap a RowSet object. This page enables users to edit data in the database through componentsbound to the data provider.

    A data provider constitutes a layer between a web application's components and its persistence tier, such as a databasetable, Array object, or Enterprise JavaBean object. This layer enables you to access data in a consistent way, eventhough data may come from different sources. The Palette contains a number of data provider implementations.

    This tutorial uses concepts introduced in other, more basic tutorials. If you do not have basic knowledge of the IDEand its design components, consider first reading introductory tutorials such as Getting Started With Java StudioCreator, Using Databound Components to Access Databases, and Creating Database Server Types and Data Sources.To learn more about consuming Enterprise JavaBean objects see Using EJB Components.

    Contents

    - Getting Started

    - Creating a Data Provider for the Enterprise JavaBean Component

    - Adding Components to the UseEjb Page

    - Providing Cursor Button Action Methods for the UseEjb Page

    - Testing Your Application: Part 1

    - Creating a UseRdbms Page

    - Adding a Data Provider to the UseRdbms Page

    - Placing Components on the UseRdbms Page

    - Configuring the Checkbox Component

    - Providing Cursor Button Action Methods for UseRdbms Page

    - Adding a Cursor Row Property to the Session Bean

    - Editing the prerender and preprocess Methods- Providing Action Methods for Commit and Revert Buttons

    - Setting Up Page Navigation

    - Testing Your Application: Part 2

    This tutorial uses the bundled database that the Java Studio Creator IDE provides. Some changes to the tutorial and tothe Java Studio Creator data sources are required to adapt it to other databases. For example, you need to open theServers window and add a data source if you are using a different database. For information about using other databases,see Creating Database Server Types and Data Sources.

    The IDE provides Enterprise JavaBean components for use in tutorials and sample applications. You can add other EJBsto the IDE, then use them in your projects. See the online help for details.

    Getting Started

    Begin by creating a web application project.

    1. Create a new project and name it DataProviders.

    2. In the Projects window, right-click the DataProviders > Web Pages node and choose New > Page from the pop-up menu.

    1

    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/jscintro.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/jscintro.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/databoundcomponents.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/ejb.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/ejb.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/databoundcomponents.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/jscintro.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/jscintro.html
  • 7/28/2019 Data Providers

    2/21

    The New Page dialog box opens.

    3. In the File Name text box, type UseEjb and press Enter.

    A new page opens in the Visual Designer.

    4. In the Projects window, right-click UseEjb and choose Set as Start Page from the pop-up menu.

    When a user access the web application, this is the first page that the browser displays.

    5. Start the database server by choosing Data > Start Bundled Database from the main menu.

    If the menu item is disabled, the database is already started.

    Creating a Data Provider for the Enterprise JavaBean Component

    Follow these steps to create a travelGetPersons1 data provider for the TravelEJB component's getPersons method.

    This EJB data provider calls the getPersons method the first time that the web application accesses the dataprovider. The data provider stores the data in an internal cache, which lasts as long as the data provider does. Shouldyou need to refresh the internal cache, you can call travelGetPersons1.refresh() .

    You add the travelGetPersons1 data provider to the session bean so that the data provider object lasts as long as the usersession. If you were to add the data provider to the page bean, a new data provider would be created upon every request,such as when the page is displayed and when the form is submitted, which would cause unnecessary data fetches. Also,when the data provider is in page scope, you must store the cursor's current position in session scope so that the cursorposition is available across requests. Therefore, an added benefit of creating the data provider in session scope is thatyou do not need to explicitly store and retireve the cursor's current position.

    Later, you bind read-only components on a web page to the data provider's data fields.

    1. In the Servers window, expand Enterprise Java Beans > Travel Center > TravelEJB and locate the getPersons() method.

    2. In the Outline window, locate the SessionBean1 node.

    3. Drag the getPersons method from the Servers window and drop it onto the SessionBean1 node, as shown inthe following figure.

    2

  • 7/28/2019 Data Providers

    3/21

    Figure 1: Creating an Enterprise JavaBean Data Provider

    Notice that the travelGetPersons1 and travelClient1 nodes appear under the SessionBean1 node in the Outlinewindow. travelClient1 is a client instance of TravelEJB, and travelGetPersons1 is the data provider for thegetPersons method.

    Figure 2: travelGetPersons1 Data Provider

    Adding Components to the UseEjb Page

    You will now lay out the components for the page.

    1. In the Palette window, expand the Basic node and drag the following components onto the page in the VisualDesigner, arranging them as shown in Figure 3.

    3

  • 7/28/2019 Data Providers

    4/21

    1 Hyperlink4 Static Text4 Button3 Label1 Message Group

    Figure 3: UseEjb Initial Page Layout

    2. Select the Hyperlink component, and, in the Properties window, edit the following properties:

    r General > id: rdbmsLinkr Appearance > text: Go To Rdbms

    3. Select the first Static Text component, and, in the Properties window, edit the following property:

    r Appearance > text:This page displays Person objects obtained from an EJB method.

    4. Select the leftmost Button component, and, in the Properties window, edit the following properties:

    r General > id: firstButtonr Appearance > text: |

  • 7/28/2019 Data Providers

    5/21

    5. Select the next Button component, and, in the Properties window, edit the following properties:

    r General > id: previousButtonr Appearance > text: id: nextButtonr Appearance > text: >

    7. Select the rightmost Button component, and, in the Properties window, edit the following properties:

    r General > id: lastButtonr Appearance > text: >|

    8. Select the first Label component, and, in the Properties window, edit the following property:

    r Appearance > text: Name:

    9. Select the second Label component, and, in the Properties window, edit the following property:

    r Appearance > text: Job Title:

    10. Select the third Label component, and, in the Properties window, edit the following property:

    r Appearance > text: Frequent Flyer:

    11. Select the Static Text component to the right of the first label component and, in the Properties window, edit thefollowing property:

    r General > id: nameStaticText

    12. To display data in your application, you must bind components in the page to the data being returned by the dataprovider. Right-click the nameStaticText component and choose Bind to Data from the pop-up menu. The Bindto Data dialog box opens.

    13. In the Bind to Data dialog box, click the Bind to Data Provider tab and select the name data field, as shown in thefollowing figure. Click OK.

    5

  • 7/28/2019 Data Providers

    6/21

    Figure 4: Bind to Data Dialog Box

    14. Select the Static Text component to the right of the second label component and, in the Properties window, editthe following property:

    r General > id: jobTitleStaticText

    15. Right-click the jobTitleStaticText component and choose Bind to Data from the pop-up menu. The Bind to Datadialog box opens.

    16. In the Bind to Data dialog box, click the Bind to Data Provider tab and select the jobTitle data field. Click OK.

    17. Select the Static Text component to the right of the third label component and, in the Properties window, edit thefollowing property:

    r General > id: freqFlyerStaticText

    18. Right-click the freqFlyerStaticText component and choose Bind to Data from the pop-up menu. The Bind to Datadialog box opens.

    19. In the Bind to Data dialog box, click the Bind to Data Provider tab and select the freqFlyer data field. Click OK.

    The design view of the page should now look like Figure 5.

    6

  • 7/28/2019 Data Providers

    7/21

    Figure 5: UseEjb Final Page Layout

    Providing Cursor Button Action Methods for UseEjb Page

    For the cursor navigation buttons to work, you must provide an action method for each of them.

    1. In the Visual Designer, double-click the leftmost button (firstButton). A firstButton_action() method iscreated for the button and the Java Editor opens with the text cursor in the method.

    2. Insert the following line into the action method (the complete method is shown in Code Sample 1).

    getSessionBean1().getTravelGetPersons1().cursorFirst();

    3. Double-click the other buttons and edit their action methods by adding the code shown in bold in Code Sample 1.

    TIP: You can cut and paste directly from this window into the Java Editor.

    7

  • 7/28/2019 Data Providers

    8/21

    public String firstButton_action() {

    getSessionBean1().getTravelGetPersons1().cursorFirst();

    return null;

    }

    public String previousButton_action() {

    //work around dataprovider implementation bug

    RowKey currentRow =

    getSessionBean1().getTravelGetPersons1().getCursorRow();

    if ((currentRow instanceof IndexRowKey) &&

    ((IndexRowKey)currentRow).getIndex() Run Main Project from the main menu to build and run your application. The application should open inyour default web browser, and you should be able to use the buttons to navigate through the Person objects in thetravelGetPersons1 data provider, viewing the name, job title, and frequent flyer status of each person obtained from thegetPersons() EJB method call. When you click the Go to Rdbms hypertext link, however, nothing happens. Youwill now create a second page to complete the tutorial and enable the hypertext link.

    Creating a UseRdbms Page

    You will now create a second page that enables users to edit the information in a relational database management system(RDBMS). You add to the page bean a CachedRowSet data provider that wraps a CachedRowSet object. TheCachedRowSet instance is in session scope. That means that, unless you explicitly tell the CachedRowSet to throw awayits data, such as by calling the data provider's release or refresh methods, the web application saves the databetween requests. You do not have to re-execute the query. However, because the data provider is in the page bean, you

    Code Sample 1: Button Action Methods for UseEjb Page

    8

  • 7/28/2019 Data Providers

    9/21

    must use a property in the session scope to save and restore the data provider's current cursor position.

    1. In the Projects window, right-click the DataProviders > Web Pages node and choose New > Page from the pop-up menu.

    The New Page dialog box opens.

    2. In the New Page dialog box, name the page UseRdbms and click Finish.

    The new page opens in the Visual Designer.

    Adding a Data Provider to the UseRdbms Page

    q In the Servers window, drag the Data Sources > Travel > Tables > PERSON node onto the UseRdbms page inthe Visual Designer. The IDE adds the personDataProvider object to the page and adds the personRowSet objectto SessionBean1, as shown in the following figure.

    Figure 6: personDataProvider and personRowSet Objects

    Placing Components on the UseRdbms Page

    Follow these steps to add the components to the page and edit their properties. When you are done, the resulting designview of the page should like the one shown in Figure 9.

    1. From the Palette > Components window, drag and drop the following Basic components onto the UseRdbmspage in the Visual Designer, arranging them as shown in Figure 7.

    Basic Components for UseRdbms Page

    Quantity Component1 Hyperlink1 Static Text6 Button2 Label2 Text Field1 Checkbox1 Message Group

    9

  • 7/28/2019 Data Providers

    10/21

    Figure 7: UseRdbms Initial Page Layout

    2. Select the Hyperlink component, and, in the Properties window, edit the following properties:

    r General > id: ejbLinkr Appearance > text: Go To EJB

    3. Select the first Static Text component, and, in the Properties window, edit the following property:

    r Appearance > text:

    This page lets you view and modify PERSON data obtained froma database. Your changes are stored in the CachedRowSet in session.

    They are committed to the backing data store when you click Commit

    Changes. They are reverted when you click Revert Changes.

    4. Select the top leftmost Button component, and, in the Properties window, edit the following properties:

    r General > id: firstButton

    r Appearance > text: |

  • 7/28/2019 Data Providers

    11/21

    5. Select the next Button component, and, in the Properties window, edit the following properties:

    r General > id: previousButton

    r Appearance > text: id: nextButtonr Appearance > text: >

    7. Select the top rightmost Button component, and, in the Properties window, edit the following properties:

    r General > id: lastButtonr Appearance > text: >|

    8. Select the Text Field component to the right of the first Label component and, in the Properties window, edit the

    following property:

    r General > id: nameTextField

    9. Right-click the nameTextField component and choose Bind to Data from the pop-up menu. The Bind to Datadialog box opens.

    10. In the Bind to Data dialog box for the nameTextField, click the Bind to Data Provider tab and choosepersonDataProvider from the drop-down list of data providers. Select the PERSON.NAME data field, as shownin the following figure. Click OK.

    Figure 8: Bind to Data Dialog Box

    11. Select the next Text Field component and, in the Properties window, edit the following property:

    r General > id: jobTitleTextField

    11

  • 7/28/2019 Data Providers

    12/21

    12. Right-click the jobTitleTextField component and choose Bind to Data from the pop-up menu. The Bind to Datadialog box opens.

    13. In the Bind to Data dialog box for the jobTitleTextField, click the Bind to Data Provider tab and choosepersonDataProvider from the drop-down list of data providers. Select the PERSON.JOBTITILE data field, andclick OK.

    14. Select the first Label component, and, in the Properties window, edit the following properties:

    r Appearance > for: nameTextFieldr Appearance > text: Name:

    15. Select the second Label component, and, in the Properties window, edit the following properties:

    r Appearance > for: jobTitleTextFieldr Appearance > text: Job Title:

    16. Select the Checkbox component and, in the Properties window, edit the following properties:

    r General > id: freqFlyerCheckbox r Appearance > label: Frequent Flyer

    17. Select the left Button component below the freqFlyerCheckbox, and, in the Properties window, edit the followingproperties:

    r General > id: commitButtonr Appearance > text: Commit Changes

    18. Select the right Button component below the freqFlyerCheckbox, and, in the Properties window, edit thefollowing properties:

    r General > id: revertButtonr Appearance > text: Revert Changes

    The design view of the page should now look like Figure 9.

    12

  • 7/28/2019 Data Providers

    13/21

    Figure 9: UseRdbms Final Page Layout

    Configuring the Checkbox Component

    The bundled database in the Java Studio Creator 2 IDE is different from the bundled database in the Java Studio Creator2 update 1 IDE. The FREQUENTFLYER database column in the Java Studio Creator 2 IDE is a boolean, whereas theFREQUENTFLYER database column in the Java Studio Creator 2 update 1 IDE is an integer. Follow the first set ofsteps for the Java Studio Creator 2 update 1 IDE. Follow the second set of steps for the Java Studio Creator 2 IDE. Ifyou are unsure of which version you are using, choose View > Welcome from the main menu. The Welcome page's title

    bar identifies the version of the IDE.

    Follow these steps to configure the Checkbox component for the Java Studio Creator 2 update 1 IDE.

    1. Click Java in the editing toolbar to open the Java Editor.

    2. Scroll to the bottom of the source file and add the following code just before the final end brace.

    13

  • 7/28/2019 Data Providers

    14/21

    Code Sample 2: Code for freqFlyer Property

    /**

    * Holds value of property freqFlyer.

    */

    private boolean freqFlyer;

    /**

    * Getter for property freqFlyer.

    * @return Value of property freqFlyer.

    */

    public boolean isFreqFlyer() {

    Integer freqFlyer = (Integer) personDataProvider.getValue(

    "PERSON.FREQUENTFLYER");

    return freqFlyer.intValue()==1? true : false ;

    }

    /**

    * Setter for property freqFlyer.

    * @param freqFlyer New value of property freqFlyer.

    */

    public void setFreqFlyer(boolean freqFlyer) {

    if(freqFlyer){

    personDataProvider.setValue(

    "PERSON.FREQUENTFLYER", new Integer(1));

    }else{

    personDataProvider.setValue(

    "PERSON.FREQUENTFLYER", new Integer(0));

    };

    this.freqFlyer = freqFlyer;

    }

    3. Click Design in the editing toolbar to display the page in the Visual Designer.

    4. In the Visual Designer, select the Checkbox component.5. In the Properties window, click the ellipsis (...) button for the selected property.

    A dialog box appears.

    6. Select the Use Binding radio button and open the Bind to an Object tab. In the Select Binding Target list, selectUseRdbms > freqFlyer, as shown in the following figure. Click OK to accept the changes and dismiss the dialogbox.

    14

  • 7/28/2019 Data Providers

    15/21

    Figure 10: Binding the Checkbox Component to Data

    Follow these steps to configure the Checkbox component for the Java Studio Creator 2 IDE.

    1. In the Visual Designer, select the Checkbox component.

    2. In the Properties window, click the ellipsis (...) button for the selected property.

    A dialog box appears.

    3. Select the Use Binding radio button.

    4. Click the Bind to Data Provider tab, select personDataProvider from the drop-down list, and select PERSON.FREQUENTFLYER.

    5. Click OK.

    Providing Cursor Button Action Methods for UseRdbms Page

    For the cursor navigation buttons to work, you must provide an action method for each of them.

    15

  • 7/28/2019 Data Providers

    16/21

    1. In the Visual Designer, double-click the leftmost button (firstButton). A firstButton_action() method iscreated for the button, and the Java Editor opens with the text cursor in the method.

    2. Insert the following line into the action method (the complete method is shown in Code Sample 3).

    personDataProvider.cursorFirst();

    3. Double-click the other buttons and edit their action methods by adding the code shown in bold in Code Sample 3.Note that the IDE does not create an action method until you double-click a button. This gesture also sets theaction property for the button.

    Code Sample 3: Button Action Methods for UseRdbms Page

    public String firstButton_action() {

    personDataProvider.cursorFirst();

    return null;

    }

    public String previousButton_action() {

    personDataProvider.cursorPrevious();

    return null;

    }

    public String nextButton_action() {

    personDataProvider.cursorNext();

    return null;

    }

    public String lastButton_action() {

    personDataProvider.cursorLast();

    return null;

    }

    Note that the getSessionBean1().getTravelGetPersons1() Enterprise JavaBean method calls from

    Code Sample 1 are replaced by personDataProvider calls for this UseRdbms page.

    Adding a Cursor Row Property to the Session Bean

    You will now add a property to the Session bean that will store the current cursor position for the personDataProvider.

    1. Click Design so that the UseRdbms page is displayed in the Visual Designer.

    2. Right-click the Session Bean node in the Outline window and choose Add > Property. The New Property Patterndialog box opens.

    3. In the New Property Pattern dialog box, type cursorRow in the Name text box, and type RowKey in the Typetext box.

    4. Click OK to close the New Property Pattern dialog box. This action creates a private cursorRow property of typeRowKey in the Session Bean, together with getter and setter methods.

    5. In the Outline window, right-click the Session Bean node and choose Open from the pop-up menu. Java code forthe Session Bean opens in the Java Editor.

    6. In the source code for the Session Bean, right-click and choose Fix Imports from the pop-up menu.

    16

  • 7/28/2019 Data Providers

    17/21

    The IDE adds the following import statement:

    import com.sun.data.provider.RowKey;

    Editing theprerender andpreprocess Methods

    You will now edit the prerender and preprocess methods for the UseRdbms page to save and restore the cursorposition.

    1. In the editor, click the UseRdbms tab, then click Java. The Java Editor opens to show the Java backing code forthe page.

    2. Scroll down the page and locate thepreprocess and prerender methods. Add the code shown in bold inthe following code sample.

    Code Sample 4: Code forpreprocess andprerenderMethodspublic void preprocess() {

    /* Restore the current cursor position */

    personDataProvider.setCursorRow(getSessionBean1().getCursorRow());

    }

    public void prerender() {

    /* Save the current cursor position */

    getSessionBean1().setCursorRow(personDataProvider.getCursorRow());

    }

    Providing Action Methods for Commit and Revert Buttons

    You will now add action methods for the Commit Changes and Revert Changes buttons.

    1. Click Design to view the UseRdbms page in the Visual Designer.

    2. Double-click the Commit Changes button to create an action method for the button. The Java Editor opens at thecommitButton_action() method.

    3. Add the code shown in bold in the following code sample.

    17

  • 7/28/2019 Data Providers

    18/21

    public String commitButton_action() {

    try {

    personDataProvider.commitChanges();

    // Refresh internal cache for UseEjb page to get the changes

    getSessionBean1().getTravelGetPersons1().refresh();

    info("Commit successful.");

    }

    catch (Exception e) {

    personDataProvider.revertChanges();

    error("Commit unsuccessful: " + e);

    log("error in commitButton_action: " + e, e);

    }

    return null;

    }

    4. Click Design to view the UseRdbms page in the Visual Designer.

    5. Double-click the Revert Changes button to create an action method for the button. The Java Editor opens at therevertButton_action() method.

    6. Add the code shown in bold in the following code sample.

    Code Sample 6: Code for Revert Action Method

    public String revertButton_action() {

    try {

    personDataProvider.revertChanges();

    info("Revert successful.");

    }

    catch (Exception e) {

    error("Revert unsuccessful: " + e);

    log("error in revertButton_action: " + e, e);

    }

    return null;

    }

    Setting Up Page Navigation

    You will now establish the hyperlinks so that users can navigate between the two pages. One way to do so is to use thePage Navigation editor as described in other tutorials. Another way is to set the url property for each Hyperlinkcomponent.

    If you were to set up the hyperlinks using the Page Navigation editor, the input fields on the UseRdbms page would beprocessed when the ejbLink was clicked. To avoid processing (and possible conversion and validation errors), youwould need to make the ejbLink submit a virtual form with no participants, or set its immediate property.

    Alternatively, you can bypass page submission by setting the url property. For the purposes of this tutorial, setting theurl property for each Hyperlink component is more straightforward. See the tutorial Using Virtual Forms for moreinformation about virtual forms.

    1. View the UseEjb page in the Visual Designer.

    2. Select the rdbmsLink component.

    3. In the Properties window, click the Behavior > url property's ellipsis (...) button.

    Code Sample 5: Code for Commit Action Method

    18

    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/virtual_form.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/virtual_form.html
  • 7/28/2019 Data Providers

    19/21

    A dialog box opens.

    4. In the dialog box, select Use Value, and select the UseRdbms node, as shown in Figure 11.

    Figure 11: Setting the url Property

    5. Click OK to set the property value and close the dialog box.

    The url property is set to /faces/UseRdbms.jsp .

    6. Similarly, view the UseRdbms page in the Visual Designer and set the Behavior > url property for the ejbLinkcomponent. This time, set the value to /faces/UseEjb.jsp.

    Testing Your Application: Part 2

    Choose Run Main Project from the main menu to build and run your application. The application should open in yourdefault Web browser. The opening page, UseEjb, should work as before, with the additional ability to navigate to theUseRdbms page by clicking the hyperlink.

    In the UseRdbms page, you should be able to use the navigation buttons to navigate through the records in the PERSONdatabase table and edit the name, job title, and frequent flyer status of each person. Try the following actions:

    q Click Commit Changes to write your edits to the database.q Click Revert Changes to abandon your uncommited edits and to reload data from the database.q Click the hyperlink to return to the UseEjb page.

    Summary

    In this tutorial, you created a Web page and a data provider in session scope for an Enterprise JavaBean. You used the

    19

  • 7/28/2019 Data Providers

    20/21

    data provider to display information from an EJB method call by binding the data provider to components on the page.You then created a second page and a data provider for that page to access data from the relational databasemanagement system. The second data provider enabled users to edit data in the database, commit their changes topersistent storage, or revert pending edits to previously stored values.

    See Also:

    q Using Databound Components to Access Databasesq Using EJB Componentsq Using CachedRowSet and CachedRowSetDataProviderq Java Studio Creator - Sample Applicationsq Creating Database Server Types and Data Sourcesq Using Virtual Forms

    More Developer Resources:For more tutorials, articles, tips, forums, updates, and expert advice for developers, visit the Java Studio Creatordeveloper resources on the Sun Developer Network (SDN) at http://developers.sun.com/jscreator/.

    This page was last modified: April 27, 2006

    Sun and Third-party Trademarked Terminology

    The following Sun trademarked terms might be used in the Sun Java(tm) Studio Creator tutorials:

    q Sun Java Studio Creator integrated development environment (IDE)q Sun Java System Application Server version number(Application Server)q Java Platform, Standard Edition technology (Java SE(tm) platform)q JavaServer(tm) Faces technologyq JavaServer Pages(tm) technology (JSP(tm) technology)q Sun Java System Web Server version number(Web Server)q Java Database Connectivity software (JDBC software)q Enterprise JavaBeans(tm) specification (EJB(tm) specification)q Solaris(tm) Operating System software (Solaris OS software)

    The following third-party trademarked terms might be used in the Sun Java Studio Creator tutorials:

    q UNIX(R) softwareq SPARC(R) processor

    Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved.

    Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described inthis document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S.

    patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S.and in other countries.

    U.S. Government Rights - Commercial software.

    Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of theFAR and its supplements. Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and the Java CoffeeCup logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.This product iscovered and controlled by U.S. Export Control laws and may be subject to the export or import laws in other countries.

    20

    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/databoundcomponents.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/ejb.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/reference/techart/2/insert_row_in_table.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/reference/code/sampleapps/index.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/virtual_form.htmlhttp://developers.sun.com/jscreatorhttp://developers.sun.com/jscreatorhttp://developers.sun.com/jscreatorhttp://developers.sun.com/jscreatorhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/virtual_form.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/dbserversources.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/reference/code/sampleapps/index.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/reference/techart/2/insert_row_in_table.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/ejb.htmlhttp://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/databoundcomponents.html
  • 7/28/2019 Data Providers

    21/21

    Nuclear, missile, chemical biological weapons or nuclear maritime end uses or end users, whether direct or indirect, arestrictly prohibited. Export or reexport to countries subject to U.S. embargo or to entities identified on U.S. export exclusionlists, including, but not limited to, the denied persons and specially designated nationals lists is strictly prohibited.

    Note: Sun is not responsible for the availability of third-party web sites mentioned in this document and does not endorseand is not responsible or liable for any content, advertising, products, or other materials on or available from such sites orresources. Sun will not be responsible or liable for any damage or loss caused or alleged to be caused by or in connectionwith use of or reliance on any such content, goods, or services available on or through any such sites or resources.

    Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, tats-Unis. Tous droitsrservs.

    Sun Microsystems, Inc. dtient les droits de proprit intellectuels relatifs la technologie incorpore dans le produit qui estdcrit dans ce document. En particulier, et ce sans limitation, ces droits de proprit intellectuelle peuvent inclure un ou plusdes brevets amricains lists l'adresse http://www.sun.com/patents et un ou les brevets supplmentaires ou les applicationsde brevet en attente aux tats-Unis et dans les autres pays. L'utilisation est soumise aux termes de la Licence. Sun, SunMicrosystems, le logo Sun, Java et le logo Java Coffee Cup sont des marques de fabrique ou des marques dposes de SunMicrosystems, Inc. aux tats-Unis et dans d'autres pays.Ce produit est soumis la lgislation amricaine en matire de

    contrle des exportations et peut tre soumis la rglementation en vigueur dans d'autres pays dans le domaine desexportations et importations. Les utilisations, ou utilisateurs finaux, pour des armes nuclaires,des missiles, des armesbiologiques et chimiques ou du nuclaire maritime, directement ou indirectement, sont strictement interdites. Lesexportations ou rexportations vers les pays sous embargo amricain, ou vers des entits figurant sur les listes d'exclusiond'exportation amricaines, y compris, mais de manire non exhaustive, la liste de personnes qui font objet d'un ordre de nepas participer, d'une faon directe ou indirecte, aux exportations des produits ou des services qui sont rgis par la lgislationamricaine en matire de contrle des exportations et la liste de ressortissants spcifiquement dsigns, sont rigoureusementinterdites.

    Sun Microsystems n'est pas responsable de la disponibilit de tiers emplacements d'enchanement mentionns dans cedocument et n'approuve pas et n'est pas responsable ou iresponsable d'aucun contenu, de la publicit, de produits, oud'autres matriaux dessus ou fournis par de tels emplacements ou ressources. Sun ne sera pas responsable ou iresponsabled'aucuns dommages ou perte causs ou allgus pour tre caus par ou en liaison avec l'utilisation de ce produit ou laconfiance dans des tels contenu, marchandises, ou services disponibles sur ou par des tels emplacements ou ressources.