Using Hibernate

in a Java Swing Application 9





  1. Creating POJOs and Mapping Files Individually (Optional)


Creating POJOs and Mapping Files Individually


Note: This exercise is optional and describes how to create the POJO and mapping file that you created with the Hibernate Mapping Files and POJOs from Database wizard.

Because a POJO is a simple Java class you can use the New Java Class wizard to create the class and then edit the class in the source editor to add the necessary fields and getters and setters. After you create the POJO you then use a wizard to create a Hibernate mapping file to map the class to the table and add mapping information to hibernate.cfg.xml. When you create a mapping file from scratch you need to map the fields to the columns in the XML editor.


Right-click the Source Packages node in the Projects window > right-click mouse > choose New > Java Class to open the New Java Class wizard.


Invoking the New Java Class Wizard in NetBeans 6.9.1


In the wizard, type MyActor for the class name and type sakila.entity for the package. Click Finish.


Giving a name and package for the new Java class that to be added to the existing project


Make the following changes to the class to implement the Serializable interface and add fields for the table columns.


public class MyActor implements Serializable {

    private Short actorId;

    private String firstName;

    private String lastName;

    private Date lastUpdate;



The following is the screenshot for the code.


Modifying the class to implement Serializable interface


Generate the getters and setters for the fields by placing the insertion cursor in the source editor, pressing Alt-Insert (or right-click mouse > choose Insert Code context menu) > select Getter and Setter.


Invoking the Insert Code context menu from the source code editor





Selecting the Getter() and Setter() methods to be inserted to the source code


In the Generate Getters and Setters dialog box, select all the fields and click Generate.

Selecting fields for the Getter() and Setter() methods to be added to the source codes


In the Generate Getters and Setters dialog box, you can use the Up arrow on the keyboard to move the selected item to the MyActor node and then press the Space bar to select all fields in MyActor.

Fix your imports and save your changes. Right click mouse anywhere in the editor > select Fix Imports context menu.


Invoking the Fix Imports context menu



Selecting the related Imports


After you create the POJO for the table you will want to create the Hibernate Mapping File for

Right-click the Source Packages node in the Projects window and choose New > Other to open the New File wizard.


Invoking the New File wizard from the Project windows in NetBeans 6.9.1


Select Hibernate Mapping Wizard in the Hibernate category. Click Next.










Selecting the Hibernate Mapping Wizard in the Hibernate category


Type MyActor.hbm for the File Name and check that the Folder is src/sakila/entity. Click Next.


Assigning the Hibernate Mapping file name and the folder location


Type sakila.entity.MyActor for the Class to Map and select 'actor' from the Database Table drop down list. Click Finish.


Assigning the class to map and the database table to use


When you click Finish the MyActor.hbm.xml Hibernate mapping file opens in the source editor.


The generated MyActor.hbm.xml file


The IDE also automatically adds an entry for the mapping resource to hibernate.cfg.xml. You can view the entry details by expanding the Mappings node in the Design view of hibernate.cfg.xml file.


The added entry for the mapping resource (MyActor.hbm.xml) to hibernate.cfg.xml file


or in the XML view. The mapping entry in the XML view will look like the following:







<mapping resource="sakila/entity/MyActor.hbm.xml"/>




The following screenshot shows the complete XML file content.


The added entry in hibernate.cfg.xml file


Map the fields in to the columns in the Actor table by making the following changes to MyActor.hbm.xml.



  <class name="sakila.entity.MyActor" table="actor">

    <id name="actorId" type="java.lang.Short">

      <column name="actor_id"/>

      <generator class="identity"/>


    <property name="firstName" type="string">

      <column length="45" name="first_name" not-null="true"/>


    <property name="lastName" type="string">

      <column length="45" name="last_name" not-null="true"/>


    <property name="lastUpdate" type="timestamp">

      <column length="19" name="last_update" not-null="true"/>





The following screenshot shows MyActor.hbm.xml file content.


The MyActor.hbm.xml file content


You can use code completion in the editor to complete the values when modifying the mapping file.

Note: By default, the generated class element has a closing tag. Because you need to add property elements between the opening and closing class element tags, you need to make the following changes. After making the changes you can then use code completion between the class tags.



  <class name="sakila.entity.MyActor" table="actor">




The following screenshot shows the code completion in action.


Code completion in action for XML in NetBeans 6.9.1


Click the Validate XML button in the toolbar and save your changes.


The validate XML feature to validate the XML code

The following screenshot shows the XML validation sample output.


The XML validation sample output


Creating individual POJOs and Hibernate mapping files might be a convenient way to further customizing your application.




< Java Swing and Hibernate 8 | Java and NetBeans Tutorial | Java Swing and Hibernate 1 >