Now create the hibernate configuration file and add all the mapping files.
01.
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02.
<!DOCTYPE hibernate-configuration PUBLIC
03.
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
05.
<
hibernate-configuration
>
06.
<
session-factory
>
07.
<
property
name
=
"hibernate.connection.driver_class"
> org.hsqldb.jdbcDriver </
property
>
08.
<
property
name
=
"hibernate.connection.url"
> jdbc:hsqldb:hsql://localhost<;/
property
>
09.
<
property
name
=
"hibernate.connection.username"
>sa</
property
>
10.
<
property
name
=
"connection.password"
></
property
>
11.
<
property
name
=
"connection.pool_size"
>1</
property
>
12.
<
property
name
=
"hibernate.dialect"
> org.hibernate.dialect.HSQLDialect </
property
>
13.
<
property
name
=
"show_sql"
>true</
property
>
14.
<
property
name
=
"hbm2ddl.auto"
>create-drop</
property
>
15.
<
mapping
resource
=
"com/vaannila/student/Student.hbm.xml"
/>
16.
<
mapping
resource
=
"com/vaannila/student/Address.hbm.xml"
/>
17.
</
session-factory
>
18.
</
hibernate-configuration
>
After creating the configuration file, generate java class files using Hibernate Tools.(To generate code using Hibernate Tools refer this example )
The following classes will be generated.
package
com.vaannila.student;
02.
03.
// Generated Sep 3, 2009 7:20:37 PM by Hibernate Tools 3.2.4.GA
04.
05.
/**
06.
* This class contains student details.
07.
*/
08.
public
class
Student
implements
java.io.Serializable {
09.
10.
private
long
studentId;
11.
private
String studentName;
12.
private
Address studentAddress;
13.
14.
public
Student() {
15.
}
16.
17.
public
Student(String studentName, Address studentAddress) {
18.
this
.studentName = studentName;
19.
this
.studentAddress = studentAddress;
20.
}
21.
22.
public
long
getStudentId() {
23.
return
this
.studentId;
24.
}
25.
26.
public
void
setStudentId(
long
studentId) {
27.
this
.studentId = studentId;
28.
}
29.
30.
public
String getStudentName() {
31.
return
this
.studentName;
32.
}
33.
34.
public
void
setStudentName(String studentName) {
35.
this
.studentName = studentName;
36.
}
37.
38.
public
Address getStudentAddress() {
39.
return
this
.studentAddress;
40.
}
41.
42.
public
void
setStudentAddress(Address studentAddress) {
43.
this
.studentAddress = studentAddress;
44.
}
45.
46.
}
01.
package
com.vaannila.student;
02.
03.
// Generated Sep 3, 2009 7:20:37 PM by Hibernate Tools 3.2.4.GA
04.
05.
/**
06.
* This class contains the student's address
07.
* details.
08.
*/
09.
public
class
Address
implements
java.io.Serializable {
10.
11.
private
long
addressId;
12.
private
String street;
13.
private
String city;
14.
private
String state;
15.
private
String zipcode;
16.
17.
public
Address() {
18.
}
19.
20.
public
Address(String street, String city, String state, String zipcode) {
21.
this
.street = street;
22.
this
.city = city;
23.
this
.state = state;
24.
this
.zipcode = zipcode;
25.
}
26.
27.
public
long
getAddressId() {
28.
return
this
.addressId;
29.
}
30.
31.
public
void
setAddressId(
long
addressId) {
32.
this
.addressId = addressId;
33.
}
34.
35.
public
String getStreet() {
36.
return
this
.street;
37.
}
38.
39.
public
void
setStreet(String street) {
40.
this
.street = street;
41.
}
42.
43.
public
String getCity() {
44.
return
this
.city;
45.
}
46.
47.
public
void
setCity(String city) {
48.
this
.city = city;
49.
}
50.
51.
public
String getState() {
52.
return
this
.state;
53.
}
54.
55.
public
void
setState(String state) {
56.
this
.state = state;
57.
}
58.
59.
public
String getZipcode() {
60.
return
this
.zipcode;
61.
}
62.
63.
public
void
setZipcode(String zipcode) {
64.
this
.zipcode = zipcode;
65.
}
66.
67.
}
01.
package
com.vaannila.student;
02.
03.
import
org.hibernate.HibernateException;
04.
import
org.hibernate.Session;
05.
import
org.hibernate.Transaction;
06.
07.
import
com.vaannila.util.HibernateUtil;
08.
09.
public
class
Main {
10.
11.
public
static
void
main(String[] args) {
12.
Session session = HibernateUtil.getSessionFactory().openSession();
13.
Transaction transaction =
null
;
14.
try
{
15.
transaction = session.beginTransaction();
16.
Address address =
new
Address(
"OMR Road"
,
"Chennai"
,
"TN"
,
"600097"
);
17.
//By using cascade=all option the address need not be saved explicitly when the student object is persisted the address will be automatically saved.
18.
//session.save(address);
19.
Student student1 =
new
Student(
"Eswar"
, address);
20.
Student student2 =
new
Student(
"Joe"
, address);
21.
session.save(student1);
22.
session.save(student2);
23.
transaction.commit();
24.
}
catch
(HibernateException e) {
25.
transaction.rollback();
26.
e.printStackTrace();
27.
}
finally
{
28.
session.close();
29.
}
30.
31.
}
32.
33.
}
On executing the Main class you will see the following output.
The Student table has two records.
The Address table has one record.
Both the student records points to the same address record, this illustrates the many-to-one mapping.
The folder structure of the example is shown below.
No comments:
Post a Comment