Requirement Constraints

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg
Showing posts with label ZK Application. Show all posts
Showing posts with label ZK Application. Show all posts

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
Read More
Posted in ZK Hibernate, ZK Application | No comments

Monday, 21 May 2012

ZK Simple Sightseeing Application Part 1

Posted on 01:00 by Unknown

After reading the following article,
http://books.zkoss.org/wiki/ZK_Getting_Started/Creating_a_Simple_Sightseeing_Application

I decided to connect with the DB and to make database driven application.



Let me split this tasks into different part as follows

Part 1 :  Make the application to work with ZK6 Version
Part 2 :  Using mysql, create the table and insert some values into the table for sight seeing, then
             connect with DB Using hybrid and retrieve the list from the DB.


Here is the Part 1

Environment

1. ZK 6 CE Version
2. Java 1.6 JRE



Step : 1

Create a New ZK Project. Let us name this project as ResortHib


Step : 2 Creating resort.zul

Right Click on Webcontent folder and Click New->Zul File and give the file name as resort.zul
Remove the default content in the resort.zul file and paste the following content.
        [Note: Same content of the resort.zul from the ZK Simple Sightseeing Application. No Change]

Here is the code for resort.zul

<?script content="zk.googleAPIkey='ABQIAAAAmGxmYR57XDAbAumS9tV5fxQXyylOlR69a1vFTcUcpV6DXdesOBSMEHfkewcSzwEwBT7UzVx8ep8vjA'"?>

<window id="win" title="ZK Tutorial" border="normal"
 apply="org.zkforge.resort.ui.ResortController" width="1024px">
<hbox>
<listbox id="lb" hflex="1">
<listhead sizable="true">
<listheader label="Name" width="100px"/>
<listheader label="Description" width="285px"/>
</listhead>
</listbox>
<gmaps id="gmap" zoom="16" showTypeCtrl="true" mapType="satellite" showLargeCtrl="true" width="610px" height="400px">
<ginfo id="ginfo"/>
</gmaps>
</hbox>
<groupbox id="gb" mold="3d" width="100%">
<caption label="Resort"/>
Name:<textbox readonly="true" id="name"/>
Description:<textbox readonly="true" id="desc"/>
Longitude:<doublebox readonly="true" id="longtitude"/>
Latitude:<doublebox readonly="true" id="latitude"/>
</groupbox>
</window>



Step : 2 Creating Resort.java

Right click on Java Resources and Click New->Class. Give package name as
        org.zkforge.resort.model and class name as Resort.java

Copy all the code from ZK Simple Sightseeing Application Resort.java and paste here.

Here is the Resort.Java code


package org.zkforge.resort.model;

import java.util.LinkedList;
import java.util.List;

public class Resort {
    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;
    }

    public String getName() {
        return _name;
    }

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

    public String getDescription() {
        return _description;
    }

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

    public double getLatitude() {
        return _latitude;
    }

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

    public double getLongitude() {
        return _longitude;
    }

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

    public static List<Resort> getAll() {
        List<Resort> resorts = new LinkedList<Resort>();
        resorts.add(new Resort("La Tour Eiffel", "Insolite ! D\351couvrez la Tour Eiffel autrement.", 48.858559939099997D, 2.2945332527D));
        resorts.add(new Resort("Buckingham Palace", "Buckingham Palace is the official London residence of the sovereign.", 51.501369818199997D, -0.14166891570000001D));
        resorts.add(new Resort("\u6771\u4EAC\u30BF\u30EF", "\u7DCF\u65704\u4E07\u306E\u5149\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC\u3068\u90FD\u5185\u6700\u5927\u7D1A15\uFF4D\u306E\u30C4\u30EA\u30FC\uFF01", 35.658348757799999D, 139.7457217178D));
        resorts.add(new Resort("Der K\366lner Dom", "Offizieller Name Hohe Domkirche St. Peter und Maria", 50.941420677099998D, 6.9586372374999996D));
        resorts.add(new Resort("ecosmos", "ecosmos Office", 12.956048, 77.590599));
     
        return resorts;
    }
 
 
}


Step : 3 Creating ResortController.java

Right click on Java Resources->Src and Click New->Class. Give package name as
        org.zkforge.resort.ui and class name as ResortController

Copy all the code from ZK Simple Sightseeing Application ResortController.java and paste here.

Here is the ResortController.java code


package org.zkforge.resort.ui;

import org.zkforge.resort.model.Resort;
import org.zkoss.gmaps.Ginfo;
import org.zkoss.gmaps.Gmaps;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Doublebox;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Textbox;

/**
*
* @author Phoenix
*
*/
public class ResortController extends GenericForwardComposer
{

    private static final long serialVersionUID = -4023064279380075239L;
    private Listbox lb;
    private Gmaps gmap;
private Ginfo ginfo;
private Textbox name;
    private Textbox desc;
    private Doublebox latitude;
    private Doublebox longtitude;

    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
     
        lb.setItemRenderer(new ListitemRenderer()
{
            public void render(Listitem item, Object data) throws Exception {
                Resort value = (Resort)data;
                item.appendChild(new Listcell(value.getName()));
                item.appendChild(new Listcell(value.getDescription()));
                item.setValue(value);
            }
        });
     
        lb.setModel(new ListModelList(Resort.getAll()));
    }
 
    public void onSelect$lb() {
        refreshUI();
    }

    private void refreshUI() {
        Resort resort = (Resort) lb.getSelectedItem().getValue();
        double latitudeValue = resort.getLatitude();
        double longtitudeValue = resort.getLongitude();
     
        name.setValue(resort.getName());
        desc.setValue(resort.getName());
        latitude.setValue(resort.getLatitude());
        longtitude.setValue(resort.getLongitude());
        ginfo.setLat(latitudeValue);
        ginfo.setLng(longtitudeValue);
        ginfo.setContent(resort.getDescription());
        gmap.panTo(latitudeValue, longtitudeValue);
        gmap.setZoom(16);
        gmap.openInfo(ginfo);
    }
}




    After you copied, the first two lines will show error

import org.zkoss.gmaps.Ginfo;
import org.zkoss.gmaps.Gmaps;


    We need to put the gmap jar file in our lib folder. In order to do this, copy the gmapsz.jar
    file from the downloaded folder and paste in our webcontent->weblib folder.


    Now, again the following line will show the error
 

lb.setItemRenderer(new ListitemRenderer() {
public void render(Listitem item, Object data) throws Exception {


    The error because the above method has been depreciated in zk6. So let us use the latest method.
    Delete the doAfterCompose method and replace with the following

 
@SuppressWarnings({ "unchecked"})
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);

lb.setItemRenderer(new ListitemRenderer() {
@Override
public void render(Listitem item, Object arg1, int arg2)
throws Exception {
Resort value = (Resort) arg1;
item.appendChild(new Listcell(value.getName()));
item.appendChild(new Listcell(value.getDescription()));
item.setValue(value);

}
});
lb.setModel(new ListModelList(Resort.getAll()));
}

Step 4:  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.
     

Next Part 2, we will modify the ZK Project to retrive the data from the Database using hibernate.



Read More
Posted in ZK Hibernate, ZK Application | No comments
Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • EDI 270–5010 Documentation - ISA – Interchange Control Header
    ISA – Interchange Control Header ISA – Interchange Control Header   The ISA is a fixed record length segment and all positions within ea...
  • Understanding EDI Structure
    EDI Structure Primary Levels are 1. Interchange Envelops 2. Functional Group 3. Transaction set Data Element A data element is equival...
  • 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 Instructions
    HIPAA Compliant Codes All the Health care EDI Transaction set should use only the following HIPAA Compliant Codes Physicians Current Pro...
  • ZK ListBox
    Let us first design a simple  static list box with crud Buttons as last column. Here is the code <?page title="Practice List" c...
  • Types of Reimbursement
    Fee-For-Service Fee-for-service is a method of payment where the provider is paid a fee for each procedure performed and billed.Most payer ...
  • List Item Connected with Hibernate and Search Parameter
      Summary This example contains one list box with First name and Last Name as search Field. If the user do not give any values for first n...
  • EDI 270 - 5010 Health Care Eligibility/Benefit Inquiry
    If you are new to Medical Billing, then please read this article first . If you are new to EDI, then  read the following articles 1. What i...
  • EDI Transactions
    The HIPAA transactions and code set standards are rules that standardize the electronic exchange of health-related administrative informati...
  • 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...

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)
      • EDI Instructions
      • Understanding EDI Structure
      • What is an EDI ?
    • ►  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)
    • ►  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