Requirement Constraints

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 22 May 2012

Simple Sightseeing Application Part 2

Posted on 02:29 by Unknown


In the part 1, we have seen how to work on sight seeing application locally by having some
static values. In this part, we will see how we can connect to the database using hibernate and
retrive the values from the table





Now we will connect with mysql using Hibernate 4.1.1

Step : 1



First let us create a table in mysql as follows
Database Name : sampledb
Table Name    : resort
Script

CREATE TABLE `resort`
(
 
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`_description` VARCHAR(255) DEFAULT NULL,
`_latitude` DOUBLE NOT NULL,
`_longitude` DOUBLE NOT NULL,
`_name` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY  (`ID`)
)
ENGINE=INNODB DEFAULT CHARSET=latin1

Insert the following values

INSERT INTO resort(_description,_latitude,_longitude,_name)
VALUES( 'Insolite ! D\351couvrez la Tour Eiffel autrement.','48.858559939099997D', '2.2945332527D', 'La Tour Eiffel')

INSERT INTO resort(_description,_latitude,_longitude,_name)
VALUES('Buckingham Palace is the official London residence of the sovereign.','51.501369818199997D',
'-0.14166891570000001D', 'Buckingham Palace')


Step 2:



If you are new to Hibernate, i would suggest first read the following posts


Hibernate Introduction
http://emrpms.blogspot.in/search/label/Hibernate%20Introduction

Set up Hibernate Environment

1. Hibernate 4.1.1
2. JDBC Driver for Mysql ((mysql-connector-java-5.1.19.zip))


Unzip the hibernate buddle and you should have the following structure after you unzip

Documentation folder
lib Folder
Project folder
log text file
hibernate logo image
license text file

1. Right Click on Resorthib project in the eclipse folder structure
2. Select New-> Folder.
3. Give the folder Name as lib

Now copy the following files into lib folder
(Eclipse project explorer accepts all copy and paste operation. For example, you can copy file  or folder in windows explorer and then you can come back to eclipse project explorer and paste    it)

All the files in Hibernate->Lib->required.
  All the files in Hibernate->Lib->jpa.
  All the files in Hibernate->Lib->envers
  mysql-connector-java-5.1.18-bin.jar


Now we need to setup the build Path. All the above jar files should be in the Class Build Path
     
1. Right Click on on Resorthib project in the eclipse folder structure
2. Select build Path->configure build path.
3. Go to Libraries-> External jars,  browse lib folder you created earlier. Then add external
     jars by selecting all jar files that you copied to lib folder in one of previous step

Step 3:

Modifying the Java Bean with Hibernate Annotation.

1. Expand Src Folder
2. Expand org.zkforge.resort.model
3. Expand Resort.Java
4. Double Click on Resort Class

Paste the following code

package org.zkforge.resort.model;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
@Table(name = "resort")
public class Resort {


private Integer id;
private String _name;
private String _description;
private double _latitude;
private double _longitude;


public Resort() {
}


public Resort(String name, String description, double latitude,
double longitude) {
_name = name;
_description = description;
_latitude = latitude;
_longitude = longitude;
}


@Id
@GeneratedValue
@Column(name = "ID")
public Integer getId() {
return id;
}


public void setId(Integer id) {
this.id = id;
}


@Column(name = "_name")
public String getName() {
return _name;
}


public void setName(String name) {
_name = name;
}


@Column(name = "_description")
public String getDescription() {
return _description;
}


public void setDescription(String description) {
_description = description;
}


@Column(name = "_latitude")
public double getLatitude() {
return _latitude;
}


public void setLatitude(double latitude) {
_latitude = latitude;
}


@Column(name = "_longitude")
public double getLongitude() {
return _longitude;
}


public void setLongitude(double longitude) {
_longitude = longitude;
}
}


Step 4:

Now let us create hibernate configuration file where we will have the information
such as DB Name, user id and Password.


1. Right Click Src folder
2. Click New -> Other
3. In the New Window, Type File for the wizards.
4. Select File from general
5. Give the File Name as hibernate.cfg.xml


Copy the following XML into that file



<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/sampledb</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>


<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>


<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>


<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>


<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>


<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>


<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>


<!-- Mapping Classes -->
<mapping class="org.zkforge.resort.model.Resort" />


</session-factory>
</hibernate-configuration>

Please take care to change the DB Name, username and password.


Step 5:

Next we will create Hibernate Utility class, where we can obtain session to data access


1. Expand Src Folder
2. Expand org.zkforge.resort.ui
3. Right Click -> New-> Class
4. Give the Class Name as HibernateUtil


Paste the following code

package org.zkforge.resort.ui;


import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;


public class HibernateUtil {
private static SessionFactory sessionFactory = buildSessionFactory();
private static ServiceRegistry serviceRegistry;


private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate .cfg.xml
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}


public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}


Step 6:

Next Step, we will create DAO for resort class from where we can have all our
DB related activites

1. Expand Src Folder
2. Expand org.zkforge.resort.ui
3. Right Click -> New-> Class
4. Give the Class Name as ResortDAO

Paste the following code


package org.zkforge.resort.ui;


import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.Query;


public class ResortDAO {


@SuppressWarnings("rawtypes")
public List getAll() {
List allrecords = null;
Transaction trns = null;
Session session = HibernateUtil.getSessionFactory().openSession();
try {
trns = session.beginTransaction();
Query q1 = session.createQuery("from Resort");
allrecords = q1.list();
session.getTransaction().commit();
} catch (RuntimeException e) {
if (trns != null) {
trns.rollback();
}
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return allrecords;
}
}



Step 7:

Now go Back to the ResortController

Replace the following line
lb.setModel(new ListModelList(Resort.getAll()));

with
lb.setModel(new ListModelList(new ResortDAO().getAll()));


Step 8:  Run the application

       Double click resort.zul and right click and say run as -> Run on server.

       You can see the output in the internal browser
Email ThisBlogThis!Share to XShare to Facebook
Posted in ZK Hibernate, ZK Application | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • ZK Example for inline Editing with Add New and Delete
    I am quite impressed on this demo from ZK . But adding new record and delete existing record is missing as part of typical CRUD. So i thoug...
  • EDI 5010 Documentation 837 Professional - Loop 2010BB Payer Name
    2010BB Payer Name          In this loop, all the information will be taken from Insurance master screen. Take a look of our sample screen...
  • EDI 5010 Documentation–837 - BHT - Beginning of Hierarchical Transaction
    BHT – Beginning of Hierarchical Transaction Loop Seg ID Segment Name Format Length Ref# Req Value   BHT Beginning of Hier...
  • Hibernate Validator Example 2
    In this example, we will see some more validation constraints such as @email, @past, @length, etc. And also we will also define custom error...
  • ZK Passing Parameter between two files using MVVM–Part 1
    Overview This is the first series of articles about Passing parameter between two zul files using MVVM Design pattern .This article will fo...
  • MVVM Command annotation and Notify change example
    Here is an example, how to pass parameter on a zul through MVVM Command binding annotation. ZK URL http://books.zkoss.org/wiki/ZK%20Develo...
  • History of Present Illness
    HPI - One of the main component of Clinical History. What is an HPI ? The history of present illness (HPI) is a chronological description...
  • Patient Demographics
    Patient browse (search) is the key element for any EMR / PMS Software. In my past 15 years experience, i involved more than 5 times in desig...
  • ViewModel Class Java Annotation @Init, @NotifyChange, @Command
    In following sections we'll list all syntaxes that can be used in implementing a ViewModel and applying ZK bind annotation. The ZK binde...
  • Good Website Design Links
    Form Design Label Placement in Forms International Address Fields in Web Forms 40 Eye-Catching Registration Pages blog-comment-form-...

Categories

  • Billing Process
  • C Workbook
  • C++ Workbook
  • Eclipse Tips
  • EDI 5010
  • EMR Appointment Features
  • EMR Labs Stuff
  • EMR PMS Links
  • EMR Use cases
  • EMR Vital Sign
  • Good Website Design
  • Hibernate Criteria Queries
  • Hibernate Introduction
  • Hibernate Introduction Setup
  • Hibernate Mapping
  • Hibernate POC
  • Hibernate Validator
  • Hibernate–Java Environment setup
  • HPI
  • Java
  • Maven
  • MU Certification
  • NPI
  • PQRS
  • Practice Management System
  • Spring Security
  • Tech Links
  • Today Tech Stuff
  • zk
  • ZK Hibernate
  • ZK 5 Databinding
  • ZK Application
  • ZK Calling Another ZUL
  • ZK CheckBox
  • ZK CreateComponents
  • ZK CSS
  • ZK extended Components
  • ZK Foreach
  • ZK Forum Posts
  • ZK Framework
  • ZK Hibernate Setup
  • ZK ID Space
  • ZK Include
  • ZK Installation
  • ZK iReport
  • ZK Layout
  • ZK Listitem Pagination
  • ZK Message Box
  • ZK MVC
  • ZK MVC Combox Box
  • ZK MVC CRUD Examples
  • ZK MVC Listbox
  • ZK MVVM
  • ZK MVVM Combo
  • ZK MVVM CRUD
  • ZK MVVM ListBox
  • ZK Spring
  • ZK TextBox

Blog Archive

  • ►  2013 (105)
    • ►  December (3)
    • ►  September (7)
    • ►  August (13)
    • ►  July (1)
    • ►  June (11)
    • ►  May (3)
    • ►  April (14)
    • ►  March (19)
    • ►  February (21)
    • ►  January (13)
  • ▼  2012 (177)
    • ►  December (1)
    • ►  November (13)
    • ►  October (19)
    • ►  September (24)
    • ►  August (26)
    • ►  July (6)
    • ►  June (37)
    • ▼  May (30)
      • Input Form Validation window
      • ZK Executions.createComponents
      • List Item Connected with Hibernate and Search Para...
      • ZK Hibernate Setup
      • Window Title Change Color
      • List item Data Binding
      • ZK Data Binding
      • Message Box Customization
      • MVC CRUD Application–Filter records in the list ba...
      • ZK Check Event Handling Using MVC
      • MVC CRUD Application with Auto filter for List item
      • Text Box on change and on Changing Event
      • Hibernate Criteria Queries
      • MVC CRUD Application
      • Hibernate Query uniqueResult Method
      • Hibernate retrieve the first record always when we...
      • Hibernate Introduction Part 4
      • ZK Data Binding Part 1
      • Simple Sightseeing Application Part 2
      • Window CSS
      • ZK Simple Sightseeing Application Part 1
      • Button CSS
      • Group Box with Collapse and Expand Button in the R...
      • Tuning Eclipse Performance and Avoiding OutOfMemor...
      • Listitem Mold Paging - Add components in the pagin...
      • ZK Calling Another ZUL File
      • ZK Installation Guide
      • List Box CSS
      • Eclipse Tips and Tricks
      • Hibernate Introduction Part 3
    • ►  April (16)
    • ►  March (1)
    • ►  January (4)
  • ►  2011 (5)
    • ►  December (1)
    • ►  November (1)
    • ►  July (1)
    • ►  June (1)
    • ►  April (1)
  • ►  2010 (1)
    • ►  September (1)
Powered by Blogger.

About Me

Unknown
View my complete profile