tag:blogger.com,1999:blog-54147753997496396422024-03-19T12:58:48.889+05:30CodesStore { }Java, Java EE, EJB, Struts, Hibernate, MySQL, JavaScript my experience ....<em>A Blog By a Sri Lankan <b>Java </b>Lover...</em>Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-5414775399749639642.post-66138687649523974472014-04-01T22:00:00.000+05:302014-06-28T11:32:46.940+05:30CSS Transparent Overlay CSS Transparent Overlay. This will work on IE 8 and earlier versions also.<br />
<a name='more'></a><br />
<br />
<blockquote>
<pre class="html" name="code"><!DOCTYPE html>
<html>
<head>
<style>
.overlay{
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
background: #000000;
opacity: 0.7;
filter: alpha(opacity=70);
}
</style>
</head>
<body>
<div class="overlay"></div>
<div>
sdfdssdfdsf<br/>
sdfdssdfdsf<br/>
sdfdssdfdsf<br/>
sdfdssdfdsf<br/>
</div>
</body>
</html></pre>
</blockquote>
<style>
.overlay{
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
background: #000000;
opacity: 0.6;
filter: alpha(opacity=60);
text-align:center;
verticle-align:middle;
font-size:20px;
}
.overlay a{
color:#fff;
}
</style>
<br />
<div class="overlay" onclick="$(this).hide();" style="display: none;">
<a href="javascript:void(0)">Close</a></div>
<a href="javascript:void(0)" onclick="$('.overlay').show()">Demo </a>
<br />
<br />
Note : This will not work on IE when using <b>quirks mode</b>.Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com47tag:blogger.com,1999:blog-5414775399749639642.post-86716084855368435472014-03-15T21:52:00.002+05:302014-03-22T19:12:35.435+05:30Hibernate Unidirectional Mapping short noteHere is my Hibernate/JPA unidirectional mapping short note.<br />
<a name='more'></a><h3>
<br />
<u>One To One</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibNv-s8XHoRlvVgc-7C39mfqsVrMvZFfVHdDBc9f8p9DnXg-MHykvQj0lnu71U6CsTyayDInQz5JYCst2QGasH15dil3kGjYnn9rGgqje8gd2TyOK0tCaj4B7AqryXL2q9kMDFxrSs7NA/s1600/1to1u.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="One To One unidirectional mapping" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibNv-s8XHoRlvVgc-7C39mfqsVrMvZFfVHdDBc9f8p9DnXg-MHykvQj0lnu71U6CsTyayDInQz5JYCst2QGasH15dil3kGjYnn9rGgqje8gd2TyOK0tCaj4B7AqryXL2q9kMDFxrSs7NA/s1600/1to1u.jpg" title="One To One unidirectional mapping" /></a></div>
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>TravelProfile</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="travel_profile_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="destination")<br />
private String destination;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@OneToOne<br />
TravelProfile <span style="color: red;">travelProfile</span>;</td>
<td></td>
</tr>
</tbody></table>
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
<td>TRAVELPROFILE_travel_profile_id</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
travel_profile
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>travel_profile_id</u></td>
<td>destination</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
If you want to change <i><b>TRAVELPROFILE_travel_profile_id</b></i> column name to <i><b>travel_pro_id</b></i> add @JoinColumn annotation.<br />
<br />
@OneToOne<br />
@JoinColumn(name="travel_pro_id")<br />
TravelProfile travelProfile;
<br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('onetoone',this);">View Sample Code</a><br />
<br />
<div id="onetoone" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@OneToOne
//@JoinColumn(name="travel_pro_id")
TravelProfile travelProfile;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public TravelProfile getTravelProfile() {
return travelProfile;
}
public void setTravelProfile(TravelProfile travelProfile) {
this.travelProfile = travelProfile;
}
}
</pre>
</blockquote>
<h3>
TravelProfile.java</h3>
<blockquote>
<pre class="java" name="code">package com.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="tavel_profile")
public class TravelProfile implements Serializable {
@Id
@Column(name = "travel_profile_id")
private Long id;
@Column(name = "destination")
private String destination;
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
</pre>
</blockquote>
</div>
<h3>
<u>Many To One</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggBsCaF5yaAhYAwiZeS9jehyphenhyphenwYLTt4i_pTHYpj8AAsDyyyjjGaDatIJ-BmyDMDOJbiWeJZoFo26wFE72U0q3N-P9ZC4lgIHbc-wY5MysfV8VVJUGZfneL8st-vOnvhanrjpebaFvpTtgM/s1600/M21u.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Many To One unidirectional mapping" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggBsCaF5yaAhYAwiZeS9jehyphenhyphenwYLTt4i_pTHYpj8AAsDyyyjjGaDatIJ-BmyDMDOJbiWeJZoFo26wFE72U0q3N-P9ZC4lgIHbc-wY5MysfV8VVJUGZfneL8st-vOnvhanrjpebaFvpTtgM/s1600/M21u.jpg" title="Many To One unidirectional mapping" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>Address</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="address_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="city")<br />
private String city;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@ManyToOne<br />
Address <span style="color: red;">address</span>;</td>
<td></td>
</tr>
</tbody></table>
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
<td>ADDRESS_address_id</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
address
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>address_id</u></td>
<td>city</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
<br />
If you want to change <i><b>ADDRESS_address_id</b></i> column name to <i><b>address_id</b></i> add @JoinColumn annotation.<br />
@ManyToOne<br />
@JoinColumn(name="address_id")<br />
Address address; <br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('manytoone',this);">View Sample Code</a><br />
<br />
<div id="manytoone" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.*;
import javax.persistence.*;
@Entity
@Table(name="employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@ManyToOne
//@JoinColumn(name="address_id")
Address address;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
</pre>
</blockquote>
<h3>
Address.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="address")
public class Address implements Serializable {
@Id
@Column(name = "address_id")
private Long id;
@Column(name = "city")
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
</pre>
</blockquote>
</div>
<h3>
<u>One To Many</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUM2y4bBAHZILABG4CbFv2nU4xasaTnVQjzrX6Rgr9_lwOrRRzTBXffEOZlmzYzn7Hx7XQa1d6zbxxx9ppSk8kyhCBuvdm205jOtfJ5KWHJbudmOgaLUcjKuKhs0sir5euu-a1rPPsFk0/s1600/1toNu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="One To Many unidirectional mapping" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUM2y4bBAHZILABG4CbFv2nU4xasaTnVQjzrX6Rgr9_lwOrRRzTBXffEOZlmzYzn7Hx7XQa1d6zbxxx9ppSk8kyhCBuvdm205jOtfJ5KWHJbudmOgaLUcjKuKhs0sir5euu-a1rPPsFk0/s1600/1toNu.jpg" title="One To Many unidirectional mapping" /></a></div>
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>AnnualReview</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="annual_review_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="description")<br />
private String description;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@OneToMany<br />
List <AnnualReview> <span style="color: red;">annualReviews</span>;</td>
<td></td>
</tr>
</tbody></table>
<br />
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
annual_review
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>annual_review_id</u></td>
<td>description</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
employee_annual_review<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>Employee_emp_id</u></td>
<td><u>annualReviews_annual_review_id</u></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
If you want to change <i><b>employee_annual_review</b></i> table name to <i><b>emp_annual_review</b></i> add @JoinTable annotation.
<br />
@OneToMany<br />
@JoinTable(name="emp_annual_review")<br />
List<AnnualReview> annualReviews;<br />
<br />
If you want to change <b><i>Employee_emp_id</i></b>, <b><i>annualReviews_annual_review</i></b>_id columns to <b><i>emp_id</i></b>, <i><b>annual_review_id</b></i> use following code<br />
<br />
@OneToMany<br />
@JoinTable(name="emp_annual_review", <br />
joinColumns=@JoinColumn(name="emp_id"),<br />
inverseJoinColumns=@JoinColumn(name="annual_review_id")<br />
)<br />
List<AnnualReview> annualReviews;<br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('onetomany',this);">View Sample Code</a><br />
<br />
<div id="onetomany" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.*;
import javax.persistence.*;
@Entity
@Table(name="employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@OneToMany
/*@JoinTable(name="emp_annual_review",
joinColumns=@JoinColumn(name="emp_id"),
inverseJoinColumns=@JoinColumn(name="annual_review_id")
)*/
List<AnnualReview> annualReviews;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<AnnualReview> getAnnualReviews() {
return annualReviews;
}
public void setAnnualReviews(List<AnnualReview> annualReviews) {
this.annualReviews = annualReviews;
}
}
</pre>
</blockquote>
<h3>
AnnualReview.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="annual_review")
public class AnnualReview implements Serializable {
@Id
@Column(name = "annual_review_id")
private Long id;
@Column(name = "description")
private String description;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
</pre>
</blockquote>
</div>
<h3>
<u>Many To Many</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTHyxWZU1TlBcLzEyN61LK7IHQyj_0i38_j_6npWcIYaza3MdmW0FMrp33yjvT1CESR3c_N4ELkmDQGF2Xgqf1mxvbIARmejpmghha5Jty2ZfueKsr9ARlNad90RNWLSvc27Z4Y1D8Kl4/s1600/M2Nu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Many To Many unidirectional mapping" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTHyxWZU1TlBcLzEyN61LK7IHQyj_0i38_j_6npWcIYaza3MdmW0FMrp33yjvT1CESR3c_N4ELkmDQGF2Xgqf1mxvbIARmejpmghha5Jty2ZfueKsr9ARlNad90RNWLSvc27Z4Y1D8Kl4/s1600/M2Nu.jpg" title="Many To Many unidirectional mapping" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>Patent</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="patent_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="description")<br />
private String description;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@ManyToMany<br />
List<Patent> <span style="color: red;">patents</span>;</td>
<td></td>
</tr>
</tbody></table>
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
patent
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>patent_id</u></td>
<td>description</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
employee_patent
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>Employee_emp_id</u></td>
<td><u>patents_patent_id</u></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
If you want to change <i><b>employee_patent</b></i>
table name to <i><b>emp_patent</b></i> add @JoinTable annotation.
<br />
@ManyToMany<br />
@JoinTable(name="emp_patent")<br />
List<Patent> patents;<br />
If you want to change <i><b>Employee_emp_id</b></i>, <i><b>patents_patent_id</b></i> columns to <i><b>emp_id</b></i>, <i><b>patent_id</b></i> use following code.<br />
<br />
@ManyToMany<br />
@JoinTable(name="emp_patent",<br />
joinColumns=@JoinColumn(name="emp_id"),<br />
inverseJoinColumns=@JoinColumn(name="patent_id")<br />
<br />
)<br />
List<Patent> patents; <br />
<br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('manytomany',this);">View Sample Code</a><br />
<br />
<div id="manytomany" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.*;
import javax.persistence.*;
@Entity
@Table(name="employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@ManyToMany
//@JoinTable(name="emp_patent",
// joinColumns=@JoinColumn(name="emp_id"),
// inverseJoinColumns=@JoinColumn(name="patent_id")
//)
List<Patent> patents;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Patent> getPatents() {
return patents;
}
public void setPatents(List<Patent> patents) {
this.patents = patents;
}
}
</pre>
</blockquote>
<h3>
Patent.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="patent")
public class Patent implements Serializable {
@Id
@Column(name = "patent_id")
private Long id;
@Column(name = "description")
private String description;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
</pre>
</blockquote>
</div>
<b>Reference</b> - SCBCD 5.0 Study Guide by Mikalai Zaikin
<script>
// <![CDATA[
function viewCode(divId,cLink){
$('#' + divId ).toggle();
var textView = "View Sample Code";
var textHide = "Hide Sample Code";
if($(cLink).html() == textView ){
$(cLink).html(textHide);
}else{
$(cLink).html(textView);
}
}
// ]]>
</script>Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com18tag:blogger.com,1999:blog-5414775399749639642.post-76469198981275626612014-03-08T14:18:00.002+05:302014-03-22T19:16:55.113+05:30Hibernate Bidirectional Mapping short noteHere is my Hibernate/JPA bidirectional mapping short note.<br />
<br />
<a name='more'></a><h3>
<u>One To One</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJLZevhcQa6tsdfqvJH82v1dZ0XUfBiLTsLoxCSpLN-xKwIlKF55mZ2Wco56ZiOqiGtMx6tg5VXhjKc82Nekl6yUvF7mEvckbLeHSshnsdmn7pxLSlOUIps_W7bHhhHapWO1vxyH2Wqrc/s1600/1to1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJLZevhcQa6tsdfqvJH82v1dZ0XUfBiLTsLoxCSpLN-xKwIlKF55mZ2Wco56ZiOqiGtMx6tg5VXhjKc82Nekl6yUvF7mEvckbLeHSshnsdmn7pxLSlOUIps_W7bHhhHapWO1vxyH2Wqrc/s1600/1to1.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Student</b></u></td>
<td width="50%"><u><b>StudentRegistration</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="student_id")<br />
private Long studentId;</td>
<td>@Id<br />
@Column(name="registration_no")<br />
private Long registrationNo;</td>
</tr>
<tr>
<td>@Column(name="student_name")<br />
private String name;</td>
<td>@Column(name="level")<br />
private String level;</td>
</tr>
<tr>
<td></td>
<td>@Column(name="registration_date")<br />
@Temporal(TemporalType.DATE)<br />
private Date regDate;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@OneToOne<br />
StudentRegistration <span style="color: red;"><b>studentRegistration</b></span>;</td>
<td>@OneToOne(mappedBy="<span style="color: red;"><b>studentRegistration</b></span>")<br />
Student student;</td>
</tr>
</tbody></table>
<br />
Student is the owner, We add owner side property name to 'mappedBy' of other side.<br />
<br />
Database tables created by Hibernate<br />
<br />
student<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>student_id</u></td>
<td>student_name</td>
<td>STUDENTRGISTRATION_registration_no</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
student_registration
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>registration_no</u></td>
<td>level</td>
<td>registration_date</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
If you want to change <b><i>STUDENTRGISTRATION_registration_no</i></b> column name to <b><i>stu_reg_no</i></b> add @JoinColumn annotation.<br />
<br />
@OneToOne<br />
@JoinColumn(name="stu_reg_no") <br />
StudentRegistration studentRegistration;<br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('onetoone',this);">View Sample Code</a><br />
<br />
<div id="onetoone" style="display: none;">
<h3>
Student.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "student")
public class Student implements Serializable {
@Id
@Column(name = "student_id")
private Integer studentId;
@Column(name = "student_name")
private String name;
@OneToOne
//@JoinColumn(name="stu_reg_no")
private StudentRegistration studentRegistration;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getStudentId() {
return studentId;
}
public void setStudentId(Integer studentId) {
this.studentId = studentId;
}
public StudentRegistration getStudentRegistration() {
return studentRegistration;
}
public void setStudentRegistration(StudentRegistration studentRegistration) {
this.studentRegistration = studentRegistration;
}
}</pre>
</blockquote>
<h3>
StudentRegistration.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
@Entity
@Table(name="student_registration")
public class StudentRegistration implements Serializable {
@Id
@Column(name = "registration_no")
private Integer registrationNo;
@Column(name = "level")
private String level;
@Column(name = "registration_date")
@Temporal(TemporalType.DATE)
private Date registrationDate;
@OneToOne(mappedBy="studentRegistration")
private Student student;
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public Date getRegistrationDate() {
return registrationDate;
}
public void setRegistrationDate(Date registrationDate) {
this.registrationDate = registrationDate;
}
public Integer getRegistrationNo() {
return registrationNo;
}
public void setRegistrationNo(Integer registrationNo) {
this.registrationNo = registrationNo;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
</pre>
</blockquote>
<br /></div>
<h3>
<u>One to Many/ Many to One </u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf6piBFBs0G1kscNl-7GfuIXzSScGqjypKnUR5ExaxSCR3BOWRMT4YweJYaOmgPhz-Km3iZ6TwPAw0Kg_wq77XAX2V1vxoIRAUy1-bT36CE35GtQrEiOpYb_7NfCJIdSDGK887WBrMZTA/s1600/1toN.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf6piBFBs0G1kscNl-7GfuIXzSScGqjypKnUR5ExaxSCR3BOWRMT4YweJYaOmgPhz-Km3iZ6TwPAw0Kg_wq77XAX2V1vxoIRAUy1-bT36CE35GtQrEiOpYb_7NfCJIdSDGK887WBrMZTA/s1600/1toN.jpg" /></a></div>
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>Department</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="dep_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="dep_name")<br />
private String name;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@ManyToOne<br />
Department <span style="color: red;"><b>department</b></span>;</td>
<td>@OneToMany(mappedBy="<span style="color: red;"><b>department</b></span>")<br />
List<Employee> emps;</td>
</tr>
</tbody></table>
<br />
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
<td>DEPARTMENT_dep_id</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
department
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>dep_id</u></td>
<td>dep_name</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('onetomany',this);">View Sample Code</a><br />
<br />
<div id="onetomany" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@ManyToOne
private Department department;
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
</pre>
</blockquote>
<h3>
Department.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
@Entity
@Table(name="department")
public class Department implements Serializable {
@Id
@Column(name = "dep_id")
private Long id;
@Column(name = "dep_name")
private String name;
@OneToMany(mappedBy = "department")
List<Employee> emps;
public List<Employee> getEmps() {
return emps;
}
public void setEmps(List<Employee> emps) {
this.emps = emps;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
</pre>
</blockquote>
</div>
<h3>
<u>Many to Many</u></h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhydJo6dvHwX1a39MuMwbmfVx7WO3giGNka8UHUWH8uCIRvZilz-rd6a2XKuLYMoh9bVcleNw5-KcXraRw8hiVHm1e4IOQZHmaV33UuF1TpOXNVjIG4hpC2qWlVsCr9VzOpmPXDHqq7-T8/s1600/M2N.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhydJo6dvHwX1a39MuMwbmfVx7WO3giGNka8UHUWH8uCIRvZilz-rd6a2XKuLYMoh9bVcleNw5-KcXraRw8hiVHm1e4IOQZHmaV33UuF1TpOXNVjIG4hpC2qWlVsCr9VzOpmPXDHqq7-T8/s1600/M2N.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="5" style="width: 100%;">
<tbody>
<tr>
<td width="50%"><u><b>Employee</b></u></td>
<td width="50%"><u><b>Project</b></u></td>
</tr>
<tr>
<td>@Id<br />
@Column(name="emp_id")<br />
private Long id;</td>
<td>@Id<br />
@Column(name="project_id")<br />
private Long id;</td>
</tr>
<tr>
<td>@Column(name="emp_name")<br />
private String name;</td>
<td>@Column(name="project_name")<br />
private String name;</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>@ManyToMany(mappedBy="<span style="color: red;"><b>employees</b></span>")<br />
List<Project> projects;</td>
<td>@ManyToMany<br />
List<Employee><span style="color: red;"><b> employees;</b></span></td>
</tr>
</tbody></table>
<br />
<br />
Database tables created by Hibernate<br />
<br />
employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>emp_id</u></td>
<td>emp_name</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
project
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>project_id</u></td>
<td>project_name</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
project_employee
<br />
<table border="1" cellpadding="5" cellspacing="0" style="width: 50%;">
<tbody>
<tr>
<td><u>projects_project_id</u></td>
<td><u>employees_emp_id</u></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody></table>
<br />
If you want to change <i><b>project_employee</b></i> table name to<i><b> pro_emp</b></i> add @JoinTable annotaion<br />
@ManyToMany<br />
@JoinTable(name="pro_emp")<br />
List<Employee> employees; <br />
<br />
<a class="more-link" href="javascript:void(0)" onclick="viewCode('manytomany',this)">View Sample Code</a><br />
<br />
<div id="manytomany" style="display: none;">
<h3>
Employee.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
@Entity
@Table(name = "employee")
public class Employee implements Serializable {
@Id
@Column(name = "emp_id")
private Long id;
@Column(name = "emp_name")
private String name;
@ManyToMany(mappedBy = "employees")
private List<Project> projects;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
}
</pre>
</blockquote>
<h3>
Project.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
@Entity
@Table(name = "project")
public class Project implements Serializable {
@Id
@Column(name = "project_id")
private Long id;
@Column(name = "project_name")
private String name;
@ManyToMany
List<Employee> employees;
public List<Employee> getEmployees() {
return employees;
}
public void setEmployees(List<Employee> employees) {
this.employees = employees;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
</pre>
</blockquote>
</div>
<script>
// <![CDATA[
function viewCode(divId,cLink){
$('#' + divId ).toggle();
var textView = "View Sample Code";
var textHide = "Hide Sample Code";
if($(cLink).html() == textView ){
$(cLink).html(textHide);
}else{
$(cLink).html(textView);
}
}
// ]]>
</script>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com3tag:blogger.com,1999:blog-5414775399749639642.post-27205920040560725162013-10-17T22:28:00.000+05:302013-10-17T22:52:24.007+05:30JAVA date difference in years months and daysHere I explain how to get date difference in <i>years, months, days</i> and <i>years, months, weeks, days.</i><br />
<a name='more'></a><br />
Libraries used:<br />
<i> joda-time-1.1.jar </i><br />
<br />
<blockquote>
<pre class="java" name="code">package codsstore;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.joda.time.DateTime;
import org.joda.time.Period;
import org.joda.time.format.PeriodFormatter;
import org.joda.time.format.PeriodFormatterBuilder;
/**
*
* @author Sameera Jayasekara
*/
public class DateDiff {
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dateFrom = dateFormat.parse("2010-11-11");
Date dateTo = dateFormat.parse("2011-12-19");
String dateDiff = getDateDifference(dateFrom, dateTo);
String dateDiff2 = getDateDifference2(dateFrom, dateTo);
System.out.println(dateDiff);
System.out.println(dateDiff2);
} catch (ParseException ex) {
Logger.getLogger(DateDiff.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
*
* @param dateFrom java.util.Date
* @param dateTo java.util.Date
* @return String years,months,weeks,days
*/
public static String getDateDifference(Date dateFrom, Date dateTo) {
String diff = "";
DateTime dateTimeFrom = new DateTime(dateFrom);
DateTime dateTimeTo = new DateTime(dateTo);
Period period = new Period(dateTimeFrom, dateTimeTo);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" year "," years ")
.appendMonths().appendSuffix(" month "," months ")
.appendWeeks().appendSuffix(" week "," weeks ")
.appendDays().appendSuffix(" day ", " days ")
//.appendHours().appendSuffix(" hour "," hours ")
//.appendMinutes().appendSuffix(" minute "," minutes ")
//.appendSeconds().appendSuffix(" second "," seconds ")
.printZeroNever()
.toFormatter();
diff = formatter.print(period);
return diff;
}
/**
*
* @param dateFrom java.util.Date
* @param dateTo java.util.Date
* @return String years,months,days
*/
public static String getDateDifference2(Date dateFrom, Date dateTo) {
String diff = "";
int days = 0;
DateTime dateTimeFrom = new DateTime(dateFrom);
DateTime dateTimeTo = new DateTime(dateTo);
Period period = new Period(dateTimeFrom, dateTimeTo);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" year "," years ")
.appendMonths().appendSuffix(" month "," months ")
//.appendWeeks().appendSuffix(" week "," weeks ")
//.appendDays().appendSuffix(" day ", " days ")
//.appendHours().appendSuffix(" hour "," hours ")
//.appendMinutes().appendSuffix(" minute "," minutes ")
//.appendSeconds().appendSuffix(" second "," seconds ")
.printZeroNever()
.toFormatter();
diff = formatter.print(period);
days = period.getDays() + period.getWeeks() * 7;
if(days > 0){
diff += days + ((days==1) ? " day ":" days ");
}
if(period.getYears()==0 && period.getMonths()==0 && days == 0){
diff = "0 days";
}
return diff;
}
}</pre>
</blockquote>
<br />
<u><b>Output:</b></u><br />
1 year 1 month 1 week 1 day <br />1 year 1 month 8 days Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com3tag:blogger.com,1999:blog-5414775399749639642.post-21730015888780191362013-09-15T21:55:00.000+05:302013-09-15T22:04:44.948+05:30FOREIGN KEY Constraints: NO ACTION, CASCADE, RESTRICT, SET NULLFOREIGN KEY Constraints in MySQL (NO ACTION, CASCADE, RESTRICT, SET NULL).<br />
<a name='more'></a>Here I test what happens when delete one to one,one to many and many to many relations with foreign keys with options NO ACTION, CASCADE, RSTRICT, SET NULL.<br />
<br />
<u>Department Employee 1:N relation.</u><br />
<br />
<div style="float: left; width: 200px;">
department <br />
<table border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>name
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">5</td><td class="">dep1</td></tr>
</tbody></table>
<br /></div>
<div style="float: left; text-align: center; width: 200px;">
employee<br />
<table border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>name
</th><th>department_id
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">11</td><td class="">sam</td><td align="right" class=" nowrap">5</td></tr>
</tbody></table>
</div>
<div style="clear: both;">
</div>
<br />
ON DELETE <b>NO ACTION</b><br />
1) Delete a row in department -> Fail, (foreign key constraint fails)<br />
2) Delete a row in employee -> Success<br />
<br />
ON DELETE <b>RESTRICT</b><br />
1) Delete a row in department -> Fail, (foreign key constraint fails)<br />
2) Delete a row in employee -> Success<br />
<br />
ON DELETE <b>SET NULL</b><br />
1) Delete a row in department -> Success, (department_id in employee table set to NULL)<br />
2) Delete a row in employee -> Success<br />
<br />
ON DELETE <b>CASCADE</b><br />
1) Delete a row in department -> Success, (Related row in employee table also deleted)<br />
2) Delete a row in employee -> Success<br />
<br />
<br />
<br />
<u>Employee Project M:N relation (emp_project middle table)</u><br />
<br />
<div style="float: left; text-align: center; text-align: center; width: 200px;">
employee<br />
<table border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>name
</th><th>department_id
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">11</td><td class="">sam</td><td align="right" class=" nowrap">5</td></tr>
</tbody></table>
<br /></div>
<div style="float: left; text-align: center; width: 200px;">
project<br />
<table align="center" border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>name
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">2</td><td class="">project1</td></tr>
</tbody></table>
</div>
<div style="float: left; text-align: center; width: 200px;">
emp_project<br />
<table align="center" border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>emp_id</u>
</th><th><u>project_id</u>
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">11</td><td align="right" class=" nowrap">2</td></tr>
</tbody></table>
</div>
<div style="clear: both;">
</div>
<br />
ON DELETE <b>NO ACTION</b><br />
1) Delete a row in employee -> Fail, (foreign key constraint fails) <br />
2) Delete a row in project-> Fail, (foreign key constraint fails) <br />
3) Delete a row in emp_project -> Success <br />
<br />
ON DELETE <b>RESTRICT</b><br />
1) Delete a row in employee -> Fail, (foreign key constraint fails)<br />
2) Delete a row in project-> Fail, (foreign key constraint fails)<br />
3) Delete a row in emp_project -> Success <br />
<br />
ON DELETE <b>SET NULL</b><br />
Can not SET NULL since middle table foreign keys are composite primary key.<br />
<br />
ON DELETE <b>CASCADE</b><br />
1) Delete a row in employee -> Success(Related row in emp_project table also deleted)<br />
2) Delete a row in department -> Success, (Related row in emp_project table also deleted)<br />
3) Delete a row in emp_project -> Success <br />
<br />
<br />
<br />
<u>Employee Profile 1:1 relation.</u><br />
<br />
<div style="float: left; text-align: center; width: 200px;">
employee<br />
<table border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>name
</th><th>department_id
</th></tr>
<tr class="odd"><td align="right" class=" nowrap">11</td><td class="">sam</td><td align="right" class=" nowrap">5</td></tr>
</tbody></table>
</div>
<div style="float: left; text-align: center; width: 200px;">
profile <br />
<table align="center" border="1" cellpadding="3" cellspacing="0"><tbody>
<tr><th><u>id</u>
</th><th>emp_id
</th><th>interests
</th></tr>
<tr class="odd marked"><td align="right" class=" nowrap">6</td><td align="right" class=" nowrap">11</td><td class="">swimming</td></tr>
</tbody></table>
</div>
<div style="clear: both;">
</div>
<br />
ON DELETE <b>NO ACTION</b><br />
1) Delete a row in profile->Success <br />
2) Delete a row in employee -> Fail, (foreign key constraint fails)<br />
<br />
ON DELETE <b>RESTRICT</b><br />
1) Delete a row in profile-> Success<br />
2) Delete a row in employee -> Fail, (foreign key constraint fails)<br />
<br />
ON DELETE <b>SET NULL</b><br />
1) Delete a row in profile-> Success<br />
2) Delete a row in employee -> Success (emp_id in profile table set to NULL)<br />
<br />
ON DELETE <b>CASCADE</b><br />
1) Delete a row in profile-> Success,<br />
2) Delete a row in employee -> Success (Related row in profile table also deleted)<br />
<br />
<br />
<br />
<br />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-1392209888122206872013-09-09T17:30:00.002+05:302023-02-23T23:39:13.189+05:30If new, INSERT. if existing, UPDATE. - MySQL (ON DUPLICATE KEY UPDATE)If new, INSERT. if existing, UPDATE. - MySQL (<span class="keyword">ON</span> DUPLICATE <span class="keyword">KEY</span> <span class="keyword">UPDATE</span>)<br />
<a name='more'></a><br />
Create test_table and add 2 records.<br />
<blockquote>
<pre class="sql" name="code">CREATE TABLE IF NOT EXISTS `test_table` (
`id` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `test_table` (`id`, `name`, `email`) VALUES
(1, 'sam1', 'sam1@xx.com'),
(2, 'sameera', 'sameera@xx.com');</pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqaKKKkiiXgRUQ1faz79x78S994NcExJDFjG-SdsdPj8DjEehTOCCUwRy8-ibvZ12v3idgGJK929LyDu9DzaMBF1qgTJt8XPRJ8OYAlbdwMa4kM7VkrULltbT-fMu93CRvvSh_bEWxecA/s1600/tbl.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqaKKKkiiXgRUQ1faz79x78S994NcExJDFjG-SdsdPj8DjEehTOCCUwRy8-ibvZ12v3idgGJK929LyDu9DzaMBF1qgTJt8XPRJ8OYAlbdwMa4kM7VkrULltbT-fMu93CRvvSh_bEWxecA/s1600/tbl.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Insert id '1' again with different data.<br />
<blockquote>
<pre class="sql" name="code">INSERT INTO test_table(id, name, email)
VALUES ('1', 'sam1', 'sam1@xx.com')
ON DUPLICATE KEY UPDATE
id = values(id),
name = values(name),
email= values(email);</pre>
</blockquote>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjK8VbQ2sve-U6GKgFKCPwJPNHauBRejMDx-pci8CJgHJGwy6vvn0EHWf8FaQX4KxHVquyi-pScFCKgGgIXrLpF-6N5SDM0Y-S6VDqw41_w4eeQ6pU8kpTskaPCHEa_X_xWuwnp7YQ7Y/s1600/tblafter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjK8VbQ2sve-U6GKgFKCPwJPNHauBRejMDx-pci8CJgHJGwy6vvn0EHWf8FaQX4KxHVquyi-pScFCKgGgIXrLpF-6N5SDM0Y-S6VDqw41_w4eeQ6pU8kpTskaPCHEa_X_xWuwnp7YQ7Y/s1600/tblafter.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Record will update Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-64819860191056635072013-07-10T21:49:00.000+05:302016-10-29T23:17:57.424+05:30Recursively print a menu in JavaScriptDynamically print a menu using recursive JavaScript method call.<br />
<a name='more'></a><br />
<blockquote>
<pre class="html" name="code"><html>
<head>
<title>Dynamic Menu - codesstore.blogspot.com</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var menuItems = {
"menu-0": {
"id": "menu-0",
"title": "Home",
"parentId": null,
"childCount": 0
},
"menu-1": {
"id": "menu-1",
"title": "About",
"parentId": null,
"childCount": 2
},
"menu-3": {
"id": "menu-3",
"title": "About Sub1",
"parentId": "menu-1",
"childCount": 2
},
"menu-5": {
"id": "menu-5",
"title": "About Sub2",
"parentId": "menu-1",
"childCount": 0
},
"menu-4": {
"id": "menu-4",
"title": "About Sub1 sub1",
"parentId": "menu-3",
"childCount": 0
},
"menu-6": {
"id": "menu-6",
"title": "Contact",
"parentId": null,
"childCount": 2
},
"menu-7": {
"id": "menu-7",
"title": "Contact sub1",
"parentId": "menu-6",
"childCount": 0
},
"menu-8": {
"id": "menu-8",
"title": "Contact sub2",
"parentId": "menu-6",
"childCount": 1
},
"menu-9": {
"id": "menu-9",
"title": "Contact sub2 sub1",
"parentId": "menu-8",
"childCount": 0
},
"menu-10": {
"id": "menu-10",
"title": "About Sub1 sub2",
"parentId": "menu-3",
"childCount": 2
},
"menu-11": {
"id": "menu-11",
"title": "About Sub1 sub2 sub1",
"parentId": "menu-10",
"childCount": 0
}
,
"menu-12": {
"id": "menu-11",
"title": "About Sub1 sub2 sub2",
"parentId": "menu-10",
"childCount": 0
}
};
$(document).ready(function () {
var htmlTxt = "";
var cat = [];
var htmlStrTxt = "";
function recurseMenu(parent, level) {
htmlStrTxt = '<ul>';
for (var x in menuItems) {
if (menuItems[x].parentId == parent) {
htmlStrTxt += '<li><span class="level-' + level + '">' + menuItems[x].title + '</span>';
if (menuItems[x].childCount > 0) {
htmlStrTxt += recurseMenu(menuItems[x].id, level + 1);
}
htmlStrTxt += '</li>';
}
}
return htmlStrTxt + '</ul>';
}
var htmlTxt = recurseMenu(null, 0);
$("#menu").html(htmlTxt);
});
</script>
</head>
<body>
<div id="menu">
</div>
</body>
</html>
</pre>
</blockquote>
<u><b>Output:</b></u><br />
<br />
<div id="menu">
<ul>
<li><span class="level-0">Home</span></li>
<li><span class="level-0">About</span><ul>
<li><span class="level-1">About Sub1</span><ul>
<li><span class="level-2">About Sub1 sub1</span></li>
<li><span class="level-2">About Sub1 sub2</span><ul>
<li><span class="level-3">About Sub1 sub2 sub1</span></li>
<li><span class="level-3">About Sub1 sub2 sub2</span></li>
</ul>
</li>
</ul>
</li>
<li><span class="level-1">About Sub2</span></li>
</ul>
</li>
<li><span class="level-0">Contact</span><ul>
<li><span class="level-1">Contact sub1</span></li>
<li><span class="level-1">Contact sub2</span><ul>
<li><span class="level-2">Contact sub2 sub1</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com2tag:blogger.com,1999:blog-5414775399749639642.post-57605326490482930232013-06-29T21:04:00.000+05:302013-06-29T21:04:21.592+05:30How to select or copy text verticallyHow to select or copy vertical block of text in various editors.<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKICKF6aNL7UjJEKiK-4HWuaGQobFnvFP-ZLqMQ3c4dPj1mEaY4zXiUOt7plBFHW7WO9QOMdeVarmqHTeNe-KF0KraxKoOmd9Vs9bsKAWwhzN-0V7wY6fDwBPIIZ9F8neFV8-0FwOBrbA/s512/vertical-select.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKICKF6aNL7UjJEKiK-4HWuaGQobFnvFP-ZLqMQ3c4dPj1mEaY4zXiUOt7plBFHW7WO9QOMdeVarmqHTeNe-KF0KraxKoOmd9Vs9bsKAWwhzN-0V7wY6fDwBPIIZ9F8neFV8-0FwOBrbA/s1600/vertical-select.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<table border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td><b>NotePad++</b></td>
<td><b>:</b></td>
<td>Alt + Mouse drag</td>
</tr>
<tr>
<td><b>Eclipse</b></td>
<td><b>:</b></td>
<td>Alt + Shift +A for enable and disable vertical copy (I used ver. Indigo, OS win 7)</td>
</tr>
<tr>
<td><b>Netbeans</b></td>
<td><b>:</b></td>
<td>Ctrl+ Shift + R for enable and disable vertical copy (I used ver. 7.3, OS win 7)</td>
</tr>
<tr>
<td><b>Firefox</b></td>
<td><b>:</b></td>
<td>Ctrl+ Mouse Drag. O<i><b>nly text in tables can be selected</b></i>.(I used ver. 15.0.1, OS win 7)</td>
</tr>
</tbody></table>
<br />
<br />
<br />
<br />
<br />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com4tag:blogger.com,1999:blog-5414775399749639642.post-10186774461668390592013-06-13T21:04:00.001+05:302013-06-13T21:06:55.139+05:30Scroll a Div using jQueryHere I show how to scroll a content of a div element using Jquery.<br />
<a name='more'></a><br />
<blockquote>
<pre class="html" name="code"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Scroll a Div - codesstore.blogspot.com</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style type="text/css">
#buttons{
width:500px;
}
#right{
float:right;
}
#scrollable{
width:500px;
overflow:hidden;
border :1px solid #ccc;
}
#content{
width:1500px;
text-align:justify;
padding:10px;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$('#left').click(function(){
$('#scrollable').animate({scrollLeft : '-=100'});
});
$('#right').click(function(){
$('#scrollable').animate({scrollLeft : '+=100'});
});
});
</script>
</head>
<body>
<div id="buttons">
<input type="button" id="left" value="<" />
<input type="button" id="right" value=">" />
</div>
<div id="scrollable">
<div id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent nec neque vitae nibh volutpat ultricies vel ut dolor. Proin tempus ornare ipsum; in consequat sem rhoncus ac. Duis erat purus, porta nec arcu id, dapibus molestie magna. Cras sed velit vitae arcu sagittis iaculis. Morbi nibh ligula, vestibulum in cursus nec; vestibulum vel lacus. Morbi eu neque eget libero bibendum malesuada. Sed iaculis facilisis nisi vel euismod. Maecenas semper adipiscing sagittis? Integer scelerisque felis ullamcorper, viverra quam nec, euismod leo.
Vivamus condimentum egestas risus; quis commodo lacus dictum nec. . Sed varius accumsan nulla, nec varius enim aliquam id. Aenean nunc massa, elementum in congue ut, rhoncus eu leo. Aenean convallis at metus a euismod. Nulla nunc magna, ultrices sed hendrerit eu, ullamcorper sit amet tortor.
</p>
</div>
</div>
</body>
</html></pre>
</blockquote>
<u><b>Demo</b></u><br />
Click arrow buttons to scroll .<u><b><br /></b></u><br />
<br />
<div id="buttons">
<input id="left" type="button" value="<" />
<input id="right" type="button" value=">" />
</div>
<div id="scrollable">
<div id="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent nec neque vitae nibh volutpat ultricies vel ut dolor. Proin tempus ornare ipsum; in consequat sem rhoncus ac. Duis erat purus, porta nec arcu id, dapibus molestie magna. Cras sed velit vitae arcu sagittis iaculis. Morbi nibh ligula, vestibulum in cursus nec; vestibulum vel lacus. Morbi eu neque eget libero bibendum malesuada. Sed iaculis facilisis nisi vel euismod. Maecenas semper adipiscing sagittis? Integer scelerisque felis ullamcorper, viverra quam nec, euismod leo.
Vivamus condimentum egestas risus; quis commodo lacus dictum nec. . Sed varius accumsan nulla, nec varius enim aliquam id. Aenean nunc massa, elementum in congue ut, rhoncus eu leo. Aenean convallis at metus a euismod. Nulla nunc magna, ultrices sed hendrerit eu, ullamcorper sit amet tortor.
</div>
</div>
<script type="text/javascript">
$('#left').click(function(){
$('#scrollable').animate({scrollLeft : '-=100'});
});
$('#right').click(function(){
$('#scrollable').animate({scrollLeft : '+=100'});
});
</script>
<style type="text/css">
#buttons{
width:500px;
}
#right{
float:right;
}
#scrollable{
width:500px;
overflow:hidden;
border :1px solid #ccc;
}
#content{
width:1500px;
text-align:justify;
padding:10px;
}
</style>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com2tag:blogger.com,1999:blog-5414775399749639642.post-74553002062016332832013-06-01T14:41:00.005+05:302013-06-01T14:42:20.686+05:30Convert Arraylist to array in JavaSimple code to convert Arraylist to array.<br />
<a name='more'></a><br />
<blockquote>
<pre class="java" name="code">package codsstore;
import java.util.*;
/**
* @author Sameera Jayasekara
*/
public class ToArray {
public static void main(String[] args) {
List<Integer> myList = new ArrayList<Integer>();
myList.add(1);
myList.add(2);
myList.add(3);
Integer[] myArray = new Integer[myList.size()];
myArray = myList.toArray(myArray);
for (int x : myArray) {
System.out.println(x);
}
}
}</pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-28949261310940702722013-06-01T14:29:00.000+05:302013-06-01T14:29:01.760+05:30Regular Expressions TutorialHere I made my short note on Regular Expressions.<br />
<a name='more'></a><br />
<h3>
Wildcard meta characters</h3>
<h3>
Single Charactor . (dot)</h3>
<b>n.t</b> matches => not ✔ net ✔ nut ✔ n#t ✔ n.t ✔ , neat ✘ <br />
<br />
<br />
<u><b>Note:</b></u><br />
<b>5.00</b> => 5.00 ✔ 5500 ✔ 5-00 ✔<br />
So we need to escape dot character<br />
<br />
<b>5\.00</b> => 5.00 ✔ 5500 ✘ 5-00 ✘<br />
<br />
<b>Other special charaters</b><br />
<ul>
<li>Spaces</li>
<li>Tabs (\t) </li>
<li>Line Returns (\r, \n, \r\n)</li>
<li>None printable characters: bell(\a) escape(\e) feed(\f) vertical tab(\v)</li>
<li>ASCII or ANCI codes: 0xA9 = \xA9</li>
</ul>
<hr />
<h3>
Character sets [ ]</h3>
<br />
[aeiou] any vowel<br />
<br />
<b>b[aeiou]t</b> => bat ✔ but ✔ bait ✘<br />
<br />
<h3>
<hr />
Character Ranges -</h3>
<br />
[0-9]<br />
[A-Za-z]<br />
<br />
<b>[0-9][0-9][0-9]</b> => 576<br />
<br />
<hr />
<h3>
Negate a character set ^</h3>
<br />
[^aeiou] not a vowel<br />
<br />
<b>see[^mn]</b> => seek ✔ seem ✘ seen ✘<br />
<br />
<u><b> Note: </b></u><br />
It matches spaces also<br />
<b>see[^mn]</b> => 'see<span style="color: red;"> </span>' ✔ 'see' ✘<br />
<br />
Below characters should escape inside sets <br />
<b>] - ^ \</b><br />
(Metacharaters automatically escaped in sets <b>. \n </b>etc )<br />
<br />
<hr />
<h3>
Shorthand character sets </h3>
<h3>
<b> </b></h3>
<ul>
<li><b>\d</b> -> digit [0-9]</li>
<li><b>\w</b> -> word character [a-zA-Z0-9_]</li>
<li><b>\s</b> -> white space [\t\r\n]</li>
<li><b>\D</b> -> not digit [^0-9]</li>
<li><b>\W</b> -> not word [^a-zA-Z0-9_]</li>
<li><b>\S</b> -> not whitespace [^\t\r\n]</li>
</ul>
<u><b>Note:</b></u><br />
<b>[^\d\s] </b>not equals <b>[\D\S] </b><br />
<br />
<h3>
<hr />
Bracket Expresssions</h3>
<br />
[:alpha:] = A-Za-z<br />
[:digit:] = 0-9<br />
<br />
[[:alpha:]] <br />
Not work in Java ,JavaScript, .Net, Python<br />
Work in PHP, Perl, Ruby Unix<br />
<br />
<hr />
<h3>
Repetition metacharacters</h3>
<br />
<b>*</b> zero or more<br />
<b>+</b> One or more<br />
<b>?</b> zero or one <br />
<br />
<b>bananas*</b> => banana ✔ bananas ✔ bananasssss ✔<br />
<b>bananas+</b> => banana ✘ bananas ✔ bananasssss ✔<br />
<b>bananas?</b> => banana ✔ bananas ✔ bananasssss ✘<br />
<br />
<hr />
<h3>
Quantified repetition { }</h3>
<br />
{min,max} min is required max is optional.<br />
<br />
<b>\d{3,5}</b> 3 to 5 digits<br />
<b>\d{3}</b> exactly 3 digits<br />
<b>\d{3,}</b> 3 to infinite<br />
<br />
\d{0,} = \d*<br />
\d{1,} = \d+<br />
<br />
<b>\d{2}-\d{3}-\d{4}</b> => 35-345-7896 ✔<br />
<br />
<br /><u>Greedy and Lazy Expressions</u><br /><br /><b>.*[0-9]+</b> => page 120 //greedy<br /><b>.*?[0-9]+</b> => page 120 //lazy<br /><br />? make preceding quantifier lazy<br />
<ul>
<li>*?</li>
<li>+?</li>
<li>{min,max}?</li>
<li>??</li>
</ul>
<br />
<br />
<hr />
<h3>
Grouping metacharacter ( ) </h3>
<br />
<b>(abc)+</b> => abc
✔ abcabc ✔<br />
<b>gun(s)?</b> => gun ✔ guns ✔<br />
<br />
<hr />
<h3>
Alternation meta character | </h3>
<b> </b><br />
<b>mango|apple</b> => apple ✔ mango ✔<br />
<b>r(u|a)n</b> => run ✔ ran ✔<br />
<br />
<hr />
<h3>
Start and End anchors </h3>
<br />
<b>^</b> Start of string/line<br />
<b>$</b> End of string/line<br />
<b>\A</b> Start of string only<br />
<b>\Z</b> End of string only<br />
<br />
\A,\Z working in Java, PHP, .Net, Perl, Python, Ruby <br />
<br />
^mango or \Amango Beginning of string<br />
mango$ or mango\Z End of string<br />
^mango$ or \Amango\Z<br />
<br />
<u><b> Note:</b></u><br />
^[A-Z] = Beginning of string<br />
[^A-Z] = Negation<br />
<br />
<hr />
<h3>
Word Boundaries</h3>
<br />
<b>\b</b> word boundary (start/end of word)<br />
<b>\B</b> not a word boundary<br />
<br />
<b>\b\w+\b</b> => test string. I'm a boy. <br />
matches test, string, I, m, a, boy<br />
<br />
<hr />
<h3>
Back References</h3>
<br />
<b>\1 to \9</b> (some regex engines use $1 to $9)<br />
<br />
<b>(mango) to \1</b> => mango to mango<br />
<b><(i|em).+?</\1> </b> => <i>test</i> ✔<br />
<em>test</em> ✔<br />
<i>test</em> ✘<br />
<br />
<hr />
<h3>
Non Capturing group expression ?:</h3>
<br />
<b> (?:orange) and (apples) to \1</b> => orange and apples to apples<br />
<br />
<br />
<hr />
<h3>
Look ahead assertions ?= ?!</h3>
<br />
<u><b><span style="font-size: small;"> Positive look ahead <span style="font-size: small;">?=</span></span></b></u><br />
(?=regex)<br />
<br />
<b>(?=seashore) sea</b> => 'sea' in seashore ✔ , not 'sea' in seaside ✘<br />
<b>sea(?=shore)</b> is same as previous<br />
<br />
eg: Find words before comma<br />
<b>\b[A-Za-z']+?\b(?=,)</b><br />
<br />
<u><b>Negative look ahead ?!</b></u><br />
(?!regex)<br />
<br />
<b>(?!seashore)sea </b>=> 'sea' in seaside ✔ 'sea' in seashore ✘<br />
<b>sea(?!shore)</b> is same as previous <br />
<br />
<hr />
<h3>
Look behind assertions ?<= ?<!</h3>
<br />
<u><b>Positive look behind ?<= </b></u><br />
<br />
<b> (?<=base)ball </b> => 'ball' in baseball ✔ 'ball' in football ✘<br />
<br />
<u><b>Negative Look Behind ?<!</b></u><br />
<br />
<b> (?<!base)ball </b> => 'ball' in football ✔ 'ball' in baseball ✘<br />
<br />
<u><b> Note:</b></u><br />
Look behind assertions <b>not </b>work in JavaScript<br />
<br />
<hr />
<h3>
Matching Unicodes </h3>
<br />
<u>Unicode indicator <b>\u</b></u><br />
<b>caf\u00E9</b> => café ✔ cafe ✘<br />
<br />
<u>Unicode wildcard <b>\X</b></u><br />
<b>caf\X</b> => café ✔ cafe ✔ //Only work on PHP and Perl<br />
<br />
<u>Unicode property <b>\p</b> {property} , not property \P</u><u><u>{property}</u> </u> <br />
<ul>
<li> L -> Letter</li>
<li>M -> Mark</li>
<li>Z -> Separator</li>
<li>S -> Symbol</li>
<li>N -> Number </li>
<li>P -> Punctuation</li>
<li>C -> Other</li>
</ul>
<b>caf\P{M}\p{M}</b> => café ✔<br />
<br />
Work on Java,.Net, Perl, PHP, Ruby<br />
<br />
<br />
<b><i>Reference: </i></b><a href="http://www.lynda.com/Regular-Expressions-tutorials/Using-Regular-Expressions/85870-2.html" rel="nofollow" target="_blank">Using Regular Expressions - Lynda.com</a><br />
<br />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-42095705938468931882013-05-30T23:05:00.001+05:302013-05-30T23:05:45.123+05:30How to merge two arrays in JavaHow to merge two arrays in Java.<br />
<a name='more'></a><br />
<blockquote>
<pre class="java" name="code">package codsstore;
/**
* @author Sameera Jayasekara
*/
public class MergeArray {
public static void main(String[] args) {
String[] arr1 = {"sam", "jay", "nimal"};
String[] arr2 = {"nick", "sanjay", "amila", "sanath"};
String[] arr3 = new String[arr1.length + arr2.length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);
for (String s : arr3) {
System.out.println(s);
}
}
}</pre>
</blockquote>
<b><u>Output:</u></b><br />
sam<br />jay<br />nimal<br />nick<br />sanjay<br />amila<br />sanath Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-67941912074250654522013-03-24T20:07:00.001+05:302013-03-24T20:08:57.100+05:30Add and remove elements from JavaScript arrayHere I show how to add ,remove elements and get a comma separated string from JavaScript array <br />
<a name='more'></a><h3>
</h3>
<h3>
Add / Remove elements from array</h3>
<blockquote>
<pre class="javascript" name="code">var myArray = ["Sameera","Sanath"];
//Add element to array
myArray.push("Amila");
//Check already contains and add an element
if ($.inArray("Jaya" ,myArray) == -1){
myArray.push("Jaya");
}
console.log(myArray);
//Remove element from array
var index = $.inArray("Sanath", myArray);
myArray.splice(index, 1);
console.log(myArray); </pre>
</blockquote>
Here I used Jquery <i><b>index = $.inArray("Sanath", myArray);</b> </i>to get index of the element. We can also get the index by<i> <b>index = myArray.indexOf("Sanath");</b></i> .But indexOf does not work on IE 8 and below.<br />
<br />
<h3>
Get a comma separated string from array </h3>
<blockquote>
<pre class="javascript" name="code">//Get comma separated string from array
var myArray = ["Sameera","Sanath","Jaya"];
var myUsers = myArray.join(",");
console.log(myUsers);</pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-90651927264106810592013-03-19T22:56:00.000+05:302013-07-27T23:22:01.347+05:30Convert minutes to hours in JavaScriptConvert minutes to hours in JavaScript . Eg: <b>400 minutes -> 06hrs 40min</b><br />
<br />
<a name='more'></a><br />
<blockquote>
<pre class="javascript" name="code"><script type="text/javascript">
function minutesToStr(minutes) {
var sign ='';
if(minutes < 0){
sign = '-';
}
var hours = leftPad(Math.floor(Math.abs(minutes) / 60));
var minutes = leftPad(Math.abs(minutes) % 60);
return sign + hours +'hrs '+minutes + 'min';
}
var hrs = minutesToStr(400);
alert(hrs);
/*
* add zero to numbers less than 10,Eg: 2 -> 02
*/
function leftPad(number) {
return ((number < 10 && number >= 0) ? '0' : '') + number;
}
</script></pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com2tag:blogger.com,1999:blog-5414775399749639642.post-85237025444359566102013-03-17T22:50:00.003+05:302013-03-17T22:50:56.328+05:30JavaScript FunctionsHere I explain different types of function creation methods in JavaScript<br />
<a name='more'></a><h3>
Create a basic function </h3>
<blockquote>
<pre class="javascript" name="code">function myFunction() {
alert("myFunction called");
}
myFunction(); //call function</pre>
</blockquote>
<br />
<h3>
Call a function when window load
</h3>
<blockquote>
<pre class="javascript" name="code">function init() {
alert("init called");
}
window.onload = init;</pre>
</blockquote>
Call anonymous function when window load<br />
<blockquote>
<pre class="javascript" name="code">window.onload = function () {
alert("anonymous function called");
}; </pre>
</blockquote>
<br />
<h3>
Call a function with setTimeout</h3>
<blockquote>
<pre class="javascript" name="code">function tOut() {
alert("tOut function called after 1000 milliseconds")
}
setTimeout(tOut, 1000); </pre>
</blockquote>
Call anonymous function with setTimeout<br />
<blockquote>
<pre class="javascript" name="code">setTimeout(function(){ alert("anonymous function called after 1000 milliseconds"); },1000);</pre>
</blockquote>
<br />
<h3>
Create an inner function</h3>
<blockquote>
<pre class="javascript" name="code">function outer() {
alert("outer - before");
function inner() {
alert("inner");
}
inner(); // can call inner here
alert("outer - after");
}
outer();
//inner(); // cannnot call inner here </pre>
</blockquote>
<blockquote>
<pre class="javascript" name="code">var inn;
function outer() {
alert("outer - before");
function inner() {
alert("inner");
}
inn = inner;
alert("outer - after");
}
outer();
inn(); // call inner here</pre>
</blockquote>
<br />
<blockquote>
<pre class="javascript" name="code">var f = function () {
alert("f")
};
f(); //call</pre>
</blockquote>
<blockquote>
<pre class="javascript" name="code">var f = function myFunction() {
alert("myFunction")
};
f();</pre>
</blockquote>
<br />
<blockquote>
<pre class="javascript" name="code">var ob = {};
ob.func = function(){ alert("func") };
ob.func(); //call</pre>
</blockquote>
<blockquote>
<pre class="javascript" name="code">var ob = {
f1 : function(){ alert("f1"); },
f2 : function(){ alert("f2"); }
}
ob.f1(); // call</pre>
</blockquote>
<blockquote>
<pre class="javascript" name="code">var ob = {
f1 : function myFunction(){ alert("myFunction called"); }
}
ob.f1(); // call</pre>
</blockquote>
<br />
<h3>
Call function using apply and call(not work on IE)</h3>
<blockquote>
<pre class="javascript" name="code">function myFunc(){
for(var x in arguments){
alert(arguments[x]);
}
}
var o1 = {};
var o2 = {};
myFunc.apply(o1,[1,2,3]);
myFunc.call(o2,1,2,3); </pre>
</blockquote>
<br />
<b>Reference</b>: <a href="http://www.manning.com/resig/" target="_blank">Secrets of the JavaScript Ninja</a>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-90221569522663589752013-03-05T22:38:00.000+05:302013-03-24T20:56:54.328+05:30JQueryClick a button/link when page load,find selected and unselected options in Jquery<br />
<a name='more'></a><h3>
</h3>
<h3>
Click a button when page load</h3>
<blockquote>
<pre class="javascript" name="code">$(document).ready(function () {
$("#link").click(function () {
alert("link clicked");
});
$("#btnSearch").click(function () {
alert("button clicked");
});
$("#btnSearch").trigger('click'); // OR
$("#btnSearch").click();
});</pre>
</blockquote>
<blockquote>
<pre class="html" name="code"><input type="button" id="btnSearch" value="Search"/>
</pre>
</blockquote>
<br />
<h3>
Click a hyperlink
</h3>
<blockquote>
<pre class="javascript" name="code"> $('#link').click();
</pre>
</blockquote>
<blockquote>
<pre class="html" name="code"><a href="#" id="link" >Go</a>
</pre>
</blockquote>
<br />
<h3>
Find selected and unselected options</h3>
<blockquote>
<pre class="javascript" name="code"> $(document).ready(function () {
$("#sel").find('option:selected').css('background', "red");
$("#sel").find('option:not(:selected)').css('background', "blue");
});
</pre>
</blockquote>
<blockquote>
<pre class="html" name="code"><select id="sel" >
<option value="USA">USA</option>
<option value="SriLanka" selected="selected">SriLanka</option>
<option value="India">India</option>
<option value="Japan">Japan</option>
</select></pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-20248011097920399932013-02-16T18:42:00.002+05:302013-02-16T18:44:04.353+05:30Remove ThreadPoolExecutor Break point in Eclipse Remove Liferay debugging breakpoints.<br />
<a name='more'></a><br />
When I debugging my liferay portlet in Tomcat, always eclipse debugger stops at break point which was not added by me.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgocf7X5TbX3wGgCdzBFRUxamXwquTUgK4pHMWYrpK4pyOTFA48bTjFI2xtXfnjR5ParZOdOLgB44-1WBTBCWUMbzTv2fFeDZBDUrQjsl-AdOsmNV4Pyh-s0LET_2AVuYycSFyVnE08Ke0/s1600/disable-debug-liferay1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="ThreadPoolExecutor" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgocf7X5TbX3wGgCdzBFRUxamXwquTUgK4pHMWYrpK4pyOTFA48bTjFI2xtXfnjR5ParZOdOLgB44-1WBTBCWUMbzTv2fFeDZBDUrQjsl-AdOsmNV4Pyh-s0LET_2AVuYycSFyVnE08Ke0/s1600/disable-debug-liferay1.jpg" title="ThreadPoolExecutor" /></a></div>
<br />
To disable that break point go to<br />
<b>Window -> Preferences -> Debug</b><br />
<br />
and untick <b><i>Suspend excecution on uncaught exceptions</i></b>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvOOnfohbN3P2_jSq959SyTcOPkaL3p7qjLJdPzojgT7zYm3ZaHDZKaqgvtPitSA1DD-YSSxaJFQla-GiZeThhEV5VP0lDMcbEkjcL-W61HrzwZlE1ovz8X5Q-O0EWcY-ZQuIP638jx8/s1600/disable+debug+liferay.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Suspend execution on uncaught exceptions" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvOOnfohbN3P2_jSq959SyTcOPkaL3p7qjLJdPzojgT7zYm3ZaHDZKaqgvtPitSA1DD-YSSxaJFQla-GiZeThhEV5VP0lDMcbEkjcL-W61HrzwZlE1ovz8X5Q-O0EWcY-ZQuIP638jx8/s1600/disable+debug+liferay.jpg" title="Suspend execution on uncaught exceptions" /></a></div>
<br />
<br />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com5tag:blogger.com,1999:blog-5414775399749639642.post-70935177825649737742013-02-16T17:27:00.003+05:302015-05-25T18:44:33.904+05:30How to create a JavaScript MapHow to create a Map in JavaScript. <br />
<a name='more'></a><br />
I'm going to create a map with following keys and values<br />
"mykey0" -> "myValue0"<br />
"mykey1" -> "myValue1"<br />
"mykey2" -> "myValue2" <br />
<br />
myMap = {"mykey0":"myValue0", "mykey1":"myValue1", "mykey2":"myValue2"}
<br />
<h3>
map.js</h3>
<blockquote>
<pre class="javascript" name="code">var myMap = {};
//Fill map
for ( var i = 0; i < 3; i++) {
myMap['mykey' + i] = "myValue" + i;
}
//Get map elements by key
for (key in myMap){
alert(myMap[key]);
}
//delete
delete myMap['mykey0'];
</pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com0tag:blogger.com,1999:blog-5414775399749639642.post-28165665146486650012013-02-10T12:44:00.000+05:302013-02-10T12:44:37.777+05:30Objects sorting in javaHere I explain how to sort java objects using Comparator and Comparable interfaces.<br />
<a name='more'></a><br />
We want to sort students by marks.<br />
Rahul: 45,<br />
Sameera: 95,<br />
Amith: 28,<br />
Anju: 60,<br />
Lahiru: 86<br />
<br />
<h3>
<u>Method 1: Comparator </u></h3>
<br />
Now create student class<br />
<h3>
Student.java</h3>
<blockquote>
<pre class="java" name="code">package com.codestore.sorting;
/**
* @author Sameera Jayasekara
*/
public class Student {
String name;
int totalMarks;
public Student(String name, int totalMarks) {
this.name = name;
this.totalMarks = totalMarks;
}
@Override
public String toString() {
return name + ": " + totalMarks;
}
}
</pre>
</blockquote>
Create comparator class and override compare method
<br />
<h3>
StudentMarksComparator.java</h3>
<blockquote>
<pre class="java" name="code">import java.util.Comparator;
/**
* @author Sameera Jayasekara
*/
public class StudentMarksComparator implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
Student student1 = s1;
Student student2 = s2;
return student2.totalMarks - student1.totalMarks;
}
}</pre>
</blockquote>
<h3>
Main.java</h3>
<blockquote>
<pre class="java" name="code">package com.codestore.sorting;
import java.util.*;
/**
* @author Sameera Jayasekara
*/
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student("Rahul", 45));
students.add(new Student("Sameera", 95));
students.add(new Student("Amith", 28));
students.add(new Student("Anju", 60));
students.add(new Student("Lahiru", 86));
System.out.println("Before Sort: " + students);
StudentMarksComparator smc = new StudentMarksComparator();
Collections.sort(students, smc);
System.out.println("After Sort: " + students);
}
}
</pre>
</blockquote>
<b>Output:</b><br />
Before Sort: [Rahul: 45, Sameera: 95, Amith: 28, Anju: 60, Lahiru: 86]<br />
After Sort: [Sameera: 95, Lahiru: 86, Anju: 60, Rahul: 45, Amith: 28]<br />
<br />
You can directly add a comparator class as a method parameter without creating a separate class.<br />
<blockquote>
<pre class="java" name="code">package com.codestore.sorting;
import java.util.*;
/**
* @author Sameera Jayasekara
*/
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student("Rahul", 45));
students.add(new Student("Sameera", 95));
students.add(new Student("Amith", 28));
students.add(new Student("Anju", 60));
students.add(new Student("Lahiru", 86));
System.out.println("Before Sort: " + students);
// StudentMarksComparator smc = new StudentMarksComparator();
// Collections.sort(students, smc);
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
Student student1 = s1;
Student student2 = s2;
return student2.totalMarks - student1.totalMarks;
}
});
System.out.println("After Sort: " + students);
}
}
</pre>
</blockquote>
<br />
<h3>
<u>Method 2: Comparable</u></h3>
<br />
<h3>
Student.java</h3>
<blockquote>
<pre class="java" name="code">package com.codestore.sorting.comparable;
/**
* @author Sameera Jayasekara
*/
public class Student implements Comparable<Student> {
String name;
int totalMarks;
public Student(String name, int totalMarks) {
this.name = name;
this.totalMarks = totalMarks;
}
@Override
public int compareTo(Student s) {
return this.totalMarks - s.totalMarks;
}
@Override
public String toString() {
return name + ": " + totalMarks;
}
}
</pre>
</blockquote>
<h3>
Main.java</h3>
<blockquote>
<pre class="java" name="code">package com.codestore.sorting.comparable;
import java.util.*;
/**
* @author Sameera Jayasekara
*/
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student("Rahul", 45));
students.add(new Student("Sameera", 95));
students.add(new Student("Amith", 28));
students.add(new Student("Anju", 60));
students.add(new Student("Lahiru", 86));
System.out.println("Before Sort: " + students);
Collections.sort(students);
System.out.println("After Sort: " + students);
}
}
</pre>
</blockquote>
<b>Output:</b><br />
Before Sort: [Rahul: 45, Sameera: 95, Amith: 28, Anju: 60, Lahiru: 86]<br />
After Sort: [Sameera: 95, Lahiru: 86, Anju: 60, Rahul: 45, Amith: 28]Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-87873241136598675802012-12-16T22:31:00.000+05:302012-12-16T22:37:40.941+05:30Get index of a foreach - Struts, JSTL, FreeMarkerHow to get the index of the current iteration of a foreach loop in Struts2, JSTL, FreeMarker<br />
<a name='more'></a><br />
<h3>
Struts 2 </h3>
<blockquote>
<pre class="html" name="code"><s:iterator value="userList" status="status" >
<s:property value="#status.index" />
<s:property value="firstname" />
</s:iterator></pre>
</blockquote>
<h3>
JSTL</h3>
<blockquote>
<pre class="html" name="code"><c:forEach items="${userList}" var="u" varStatus="status">
<c:out value="${status.index}" />
<c:out value="${u.firstname}" />
</c:forEach>
</pre>
</blockquote>
<h3>
FreeMarker</h3>
<blockquote>
<pre class="html" name="code"><#list userList as u>
${u_index}
${u.firstname}
</#list></pre>
</blockquote>
Backend code<br />
<blockquote>
<pre class="java" name="code">List<User> userList = new ArrayList<User>();
userList.add(new User("sam", "jay"));
userList.add(new User("sameera", "jaya"));</pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-81450521176802584112012-12-04T23:17:00.000+05:302012-12-04T23:17:25.689+05:30Insert multiple rows MySQLYou can insert multiple rows using a single query.<br />
<a name='more'></a>
<br />
<blockquote>
<pre class="sql" name="code">INSERT INTO student(first_name,last_name,username) VALUES
('sameera','jaya','samjay'),
('sanath','jaya','sanjay'),
('samal','jayaweera','samaljay');</pre>
</blockquote>
Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-59286646948096686952012-11-02T23:29:00.000+05:302012-11-03T23:36:49.631+05:30JavaScript functions for realtime validationThese are the functions you need to validate input fields.<br />
<a name='more'></a>You can add these functions to a common JavaScript file and include that to whole website.<br />
<br />
<h3>
Block users to type other characters in numeric fields.</h3>
<br />
<blockquote>
<pre class="javascript" name="code">$(document).ready(function() {
$('.numeric-only').keypress(function (e){
if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)){
return false;
}
});
});</pre>
</blockquote>
Usage:<br />
<blockquote>
<pre class="html" name="code"> <input type="text" name="age" class="numeric-only" maxlength="3"/></pre>
</blockquote>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.numeric-only').keypress(function (e){
if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)){
return false;
}
});
$('.capitalize').keyup(function(evt){
var txt = $(this).val();
$(this).val(txt.replace(/^(.)|\s(.)/g, function(data){ return data.toUpperCase( ); }));
});
$('.alpha-only').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z]/g, '');
$(this).val(txt);
});
$('.alpha-numeric-only').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z0-9]/g, '');
$(this).val(txt);
});
$('.alpha-numeric-space').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z 0-9\s]/g, '');
$(this).val(txt);
});
});
</script>
Demo:<br />
<br />
Age: <input class="numeric-only" maxlength="3" name="age" type="text" />
<br />
<h3>
</h3>
<h3>
Capitalize text when typing. </h3>
This will capitalize first letter in every word in the text field.<br />
<blockquote>
<pre class="javascript" name="code">$(document).ready(function() {
$('.capitalize').keyup(function(evt){
var text = $(this).val();
$(this).val(text.replace(/^(.)|\s(.)/g, function(data){ return data.toUpperCase( ); }));
});
});</pre>
</blockquote>
Usage:<br />
<blockquote>
<pre class="html" name="code"> <input type="text" name="fullname" class="capitalize" /></pre>
</blockquote>
Demo:<br />
<br />
Full Name: <input class="capitalize" name="fullname" type="text" />
<br />
<br />
<h3>
Alpha only</h3>
This will only allow alpha characters when typing.
<br />
<blockquote>
<pre class="javascript" name="code">$(document).ready(function() {
$('.alpha-only').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z]/g, '');
$(this).val(txt);
});
});</pre>
</blockquote>
<br />
Usage:<br />
<blockquote>
<pre class="html" name="code"> <input type="text" name="username" class="alpha-only" /></pre>
</blockquote>
Demo:<br />
<br />
Username: <input class="alpha-only" name="username" type="text" />
<br />
<br />
<h3>
Alpha numeric only</h3>
This will only allow alpha and numeric characters when typing.
<br />
<blockquote>
<pre class="javascript" name="code">$(document).ready(function() {
$('.alpha-numeric-only').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z0-9]/g, '');
$(this).val(txt);
});
});</pre>
</blockquote>
Usage:<br />
<blockquote>
<pre class="html" name="code"> <input type="text" name="displayname" class="alpha-numeric-only" /></pre>
</blockquote>
Demo:<br />
<br />
Display Name: <input class="alpha-numeric-only" name="username" type="text" /><br />
<br />
<h3>
Alpha numeric space</h3>
This will only allow alpha, numeric and space characters when typing.
<br />
<blockquote>
<pre class="javascript" name="code"> $(document).ready(function() {
$('.alpha-numeric-space').keyup(function (e){
var text = $(this).val();
txt=text.replace(/[^a-zA-Z 0-9\s]/g, '');
$(this).val(txt);
});
});</pre>
</blockquote>
Usage:<br />
<blockquote>
<pre class="html" name="code"> <input type="text" name="nickname" class="alpha-numeric-space" /></pre>
</blockquote>
Demo:<br />
<br />
Nickname: <input class="alpha-numeric-space" name="username" type="text" />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-67882099102151504662012-07-05T17:10:00.001+05:302012-07-08T17:37:46.051+05:30How to create a Java application with MavenHere I explain how to create and run Java Application using Maven and Eclipse.
<br />
<a name='more'></a><u>Tools used</u><br />
<br />
<a href="http://www.eclipse.org/" target="_blank">Eclipse (Helios)</a><br />
Maven Integration for Eclipse (Help->Eclipse Marketplace and install it.) <br />
<a href="http://mojo.codehaus.org/exec-maven-plugin/" target="_blank">Exec Maven Plugin </a><br />
<br />
Create new Maven project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMOR_7SNITJVxrLJ_ZUp7oZJtOT1lHt0dlLTKe09ai0igXK8Krb917JzGNTrDCVJdqG5Ti7nbv5sIsS5PXmI7OUaPVE2WAU6YGCKhUrhm9UNx3kCWnY6AQEjW19STg1E46UyaSxn53qQc/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMOR_7SNITJVxrLJ_ZUp7oZJtOT1lHt0dlLTKe09ai0igXK8Krb917JzGNTrDCVJdqG5Ti7nbv5sIsS5PXmI7OUaPVE2WAU6YGCKhUrhm9UNx3kCWnY6AQEjW19STg1E46UyaSxn53qQc/s1600/1.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0WfUgiDH0w9eAizG5z3DRM_HooIqzYUWH4vrgh6ip-rWnherx8_2dC11DqQ_gkRYs8VClgjqkGk4_zLsavDAL-vUGw-DxaFePO7knC9N82w9c4LTWorZgKHmjsdRcghqq4f9iJfXkNkA/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0WfUgiDH0w9eAizG5z3DRM_HooIqzYUWH4vrgh6ip-rWnherx8_2dC11DqQ_gkRYs8VClgjqkGk4_zLsavDAL-vUGw-DxaFePO7knC9N82w9c4LTWorZgKHmjsdRcghqq4f9iJfXkNkA/s1600/2.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeoXIIvFiHjD_Edcf4-Lgw8qcl7zeHZGTRY8xPJUeeBTg1MI4Hcmm6QZ2imaY34Ow-Qn4icA2JxliJ_5xlBHnXD81aIVkCWadTCXtDh6n3cZfaiTiUgAfhksf2n7Q6TeC1FF38IRsJLGI/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeoXIIvFiHjD_Edcf4-Lgw8qcl7zeHZGTRY8xPJUeeBTg1MI4Hcmm6QZ2imaY34Ow-Qn4icA2JxliJ_5xlBHnXD81aIVkCWadTCXtDh6n3cZfaiTiUgAfhksf2n7Q6TeC1FF38IRsJLGI/s1600/3.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now generated project structure look like this.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbz5Z2X1xov5anyxQZSDLqEkVslvRWN0prgQAFvtXtPQLqdBguxaDJrW9OecNsmJmv2UxmpfaI4hyphenhyphen4Q6fe9VRHlb_MIl0i-Q0VmcFWdSFqcveoVY3VbIY1KAJXdtudn_An7TlmxQW6j2k/s1600/4.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbz5Z2X1xov5anyxQZSDLqEkVslvRWN0prgQAFvtXtPQLqdBguxaDJrW9OecNsmJmv2UxmpfaI4hyphenhyphen4Q6fe9VRHlb_MIl0i-Q0VmcFWdSFqcveoVY3VbIY1KAJXdtudn_An7TlmxQW6j2k/s1600/4.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Generated pom.xml<br />
<br />
<h3>
pom.xml</h3>
<blockquote>
<pre class="xml" name="code"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>codesstore</groupId>
<artifactId>codesstore-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>codesstore-core</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
</pre>
</blockquote>
<br />
I created a new class called MyClass.java in com.codesstore.util package.<br />
<br />
<h3>
MyClass.java
</h3>
<blockquote>
<pre class="java" name="code">package com.codesstore.util;
public class MyClass {
public void printHello() {
System.out.println("Hello Maven...");
}
}
</pre>
</blockquote>
And called that class in main method.<br />
<br />
<h3>
App.java</h3>
<br />
<blockquote>
<pre class="java" name="code">package com.codesstore.main;
import com.codesstore.util.MyClass;
public class App {
public static void main(String[] args) {
new MyClass().printHello();
}
}
</pre>
</blockquote>
Now I'm going to add Exec plugin to pom.xml. See more information on Exec plugin <a href="http://mojo.codehaus.org/exec-maven-plugin/" target="_blank">http://mojo.codehaus.org/exec-maven-plugin/</a><br />
<br />
<h3>
pom.xml</h3>
<blockquote>
<pre class="xml" name="code"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>codesstore</groupId>
<artifactId>codesstore-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>codesstore-core</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1-beta-1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.codesstore.main.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
</pre>
</blockquote>
Right click on the pom file -> Run as ->Maven build..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZSlZcCsWVZi5SbZmYut5jDBmsybK21Am9fLYZaQlnqeCJkUR-b2HXGe0Ae8MOCEi57JoBxbyUowaq-Estd93YsKX5Q8nGQv0qNXDVxp-2sCQX9gQhYKRaXaMofftEzNfoGnEpcIIHyA/s1600/6.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZSlZcCsWVZi5SbZmYut5jDBmsybK21Am9fLYZaQlnqeCJkUR-b2HXGe0Ae8MOCEi57JoBxbyUowaq-Estd93YsKX5Q8nGQv0qNXDVxp-2sCQX9gQhYKRaXaMofftEzNfoGnEpcIIHyA/s1600/6.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Then you can set goals to run. I use <b>exec:java</b> here.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSzSGbTsWYyamc2WdXVwb6K0pblwucfSUdEKCtNfx-VtJYRk2CukqPZkmP22Tsed7b21cz6eAzPveXiiY_oEnKnTWemFOF4Dgk48e7MF3UKiTVPWCfL57zE3OdspaAlrOiJf_WqFoc2YY/s1600/5.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSzSGbTsWYyamc2WdXVwb6K0pblwucfSUdEKCtNfx-VtJYRk2CukqPZkmP22Tsed7b21cz6eAzPveXiiY_oEnKnTWemFOF4Dgk48e7MF3UKiTVPWCfL57zE3OdspaAlrOiJf_WqFoc2YY/s1600/5.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Out put</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZzKFvHFyjFxHCPBZNmwJFXZPch0Res5TEzpYcCDnOQSexCxpMeKW6cOGz1Ii_6wBHScejrk8rgRQUOHNj1vYO9U8FySCDiK_q_Hht244JpfRSNmdutMxFMgmhTULpgiAw4bdaXJpTuE/s1600/7.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZzKFvHFyjFxHCPBZNmwJFXZPch0Res5TEzpYcCDnOQSexCxpMeKW6cOGz1Ii_6wBHScejrk8rgRQUOHNj1vYO9U8FySCDiK_q_Hht244JpfRSNmdutMxFMgmhTULpgiAw4bdaXJpTuE/s1600/7.JPG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Project structure in Eclipse</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZDoZ6_Q-pStN1AWs1Yz5AZRP9J0qepHrHegtOO9kcFu8N3QmS6KzQeqPQ-c9OAACFPWPT50pUzdS_KQ2noWeOhU8YeC4uqwK5CJTrWySpeuhgTjL_Z0qZMU8fpky_TwkRDntZl1f_ouE/s1600/8.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZDoZ6_Q-pStN1AWs1Yz5AZRP9J0qepHrHegtOO9kcFu8N3QmS6KzQeqPQ-c9OAACFPWPT50pUzdS_KQ2noWeOhU8YeC4uqwK5CJTrWySpeuhgTjL_Z0qZMU8fpky_TwkRDntZl1f_ouE/s1600/8.JPG" /></a></div>
<br />Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com1tag:blogger.com,1999:blog-5414775399749639642.post-49687954661859632222012-07-05T11:35:00.000+05:302012-07-10T22:25:32.547+05:30EJB3 and JPA step by step tutorial using NetBeansHere I explain step by step how to create an EJB 3 with JPA application in NetBeans IDE.<br />
<a name='more'></a>This tutorial is for beginners who want to learn steps to create EJB persistence application with NetBeans and Glassfish.<br />
<br />
<u>Tools used</u><br />
<br />
<a href="http://netbeans.org/">NetBeans 6.9.1</a><br />
<a href="http://glassfish.java.net/">Glassfish Server 3</a><br />
<a href="http://www.mysql.com/">MySQL database</a><br />
<br />
Create an Enterprise Application called <b><i>StudentManagementEA</i></b>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5OaTiagU5nNVnQPQwBmFu4NypNo88qUea758fwnbtxsqXtMnc8HmsN5sC1AwJLdPFsvIGcYCRc7R9JNCXoVRcXUNXhFIYYeEJj4lCJDLw1dh-zOI8vKbCLixNhQISIA54rB-IPMd3TXY/s1600/ejb1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create Enterprise Application in Netbeans" border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5OaTiagU5nNVnQPQwBmFu4NypNo88qUea758fwnbtxsqXtMnc8HmsN5sC1AwJLdPFsvIGcYCRc7R9JNCXoVRcXUNXhFIYYeEJj4lCJDLw1dh-zOI8vKbCLixNhQISIA54rB-IPMd3TXY/s400/ejb1.jpg" title="Create Enterprise Application in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
Click on images to <b>enlarge</b><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFA6JEpNNcywCCQ3pEKV5TLaSeBcxsTzOcQ1oBKZQayPkdEPKUFY8c_nd6uG0nedtm-xY9LPJfeOAwZHbr2-EHEHu09O9W4k0jcpUFn6ZzU55KlksfQc-GOVznXC6YDsVOD-qO6qqIoJA/s1600/ejb2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create Enterprise Application in Netbeans" border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFA6JEpNNcywCCQ3pEKV5TLaSeBcxsTzOcQ1oBKZQayPkdEPKUFY8c_nd6uG0nedtm-xY9LPJfeOAwZHbr2-EHEHu09O9W4k0jcpUFn6ZzU55KlksfQc-GOVznXC6YDsVOD-qO6qqIoJA/s400/ejb2.jpg" title="Create Enterprise Application in Netbeans" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoQK0iuIBb0JV5anbQQEV-la-WJQk2WMvrvPzFfQPI7taYguLB1jVNrjEUrTBvxapXcl3IQxIu9dlGxe_T4CtaxQpFGTVpXjbcrfQrjg6xOgRIey_jymTyVaKM_qWqYC7l2lf-ByvIviU/s1600/ejb3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create Enterprise Application in Netbeans" border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoQK0iuIBb0JV5anbQQEV-la-WJQk2WMvrvPzFfQPI7taYguLB1jVNrjEUrTBvxapXcl3IQxIu9dlGxe_T4CtaxQpFGTVpXjbcrfQrjg6xOgRIey_jymTyVaKM_qWqYC7l2lf-ByvIviU/s400/ejb3.jpg" title="Create Enterprise Application in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It creates web module and EJB modules.<br />
<br />
Now create a database called <b><i>studentmgt_db</i></b>. Go to services tab and create it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk62NgOJvAguuoEgbU_PngwnuRbZgqtjM1XmoBZEgLSCIXpa-WRYDeBpLEyd8lwZffMUQ9bhB1eBhjaVQ9-a6W_S8AyjczoZ9v09zC4lLW4Uou4yI_fr1o1_6mK8CzTDpjR0sugzPHKNA/s1600/eejb10.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create database in Netbeans" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk62NgOJvAguuoEgbU_PngwnuRbZgqtjM1XmoBZEgLSCIXpa-WRYDeBpLEyd8lwZffMUQ9bhB1eBhjaVQ9-a6W_S8AyjczoZ9v09zC4lLW4Uou4yI_fr1o1_6mK8CzTDpjR0sugzPHKNA/s400/eejb10.jpg" title="Create database in Netbeans" width="293" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Again go to Projects tab and create Persistence Unit. It will generate the <i><b>persistence.xml</b></i> file.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVcIXeknfuGzaWJGLKi8dOdGOadt7N46V-gx5R8XXfxRTHSnDrAa4VAhdW19UKKgWd366y5SjZgXcpz_A2UwC4qCZ9p_uvYYwZibaeXdc9kspzs34vI2v3v_Xy2ixEvRenPlBPbdFJVBQ/s1600/eejb13.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create persistence unit in Netbeans" border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVcIXeknfuGzaWJGLKi8dOdGOadt7N46V-gx5R8XXfxRTHSnDrAa4VAhdW19UKKgWd366y5SjZgXcpz_A2UwC4qCZ9p_uvYYwZibaeXdc9kspzs34vI2v3v_Xy2ixEvRenPlBPbdFJVBQ/s400/eejb13.jpg" title="Create persistence unit in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJW0oa5d0FvqxpKJauDVkeShUOQ5lDOrpIkv3DZXr6idOZCOzlvW-K3fLLEz25HA7wcJh3rfwqiI0bOVnG2JqbT5GtJ5a7POCWK80h-iOjxez8QQOHHRKrFyt7PmXUakAL7YGxXd3KHbM/s1600/eejb14.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create persistence unit in Netbeans" border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJW0oa5d0FvqxpKJauDVkeShUOQ5lDOrpIkv3DZXr6idOZCOzlvW-K3fLLEz25HA7wcJh3rfwqiI0bOVnG2JqbT5GtJ5a7POCWK80h-iOjxez8QQOHHRKrFyt7PmXUakAL7YGxXd3KHbM/s400/eejb14.jpg" title="Create persistence unit in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Give a JNDI name and select data base you created.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzJipH8FuTgdHQ686rX4ykD6Dd9jI7OcQhLIsgw2mEJ4_gQSKgq2eIw6T6QCO_r8SJlJ6U_va8T3t23yUqK_Rx-yxKJkts0Av26WM-AIwj3-LlmSriKdyfpMheeqy1HDwlsKBXKbE2ZKo/s1600/eejb15.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create persistence unit in Netbeans" border="0" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzJipH8FuTgdHQ686rX4ykD6Dd9jI7OcQhLIsgw2mEJ4_gQSKgq2eIw6T6QCO_r8SJlJ6U_va8T3t23yUqK_Rx-yxKJkts0Av26WM-AIwj3-LlmSriKdyfpMheeqy1HDwlsKBXKbE2ZKo/s400/eejb15.jpg" title="Create persistence unit in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheVxyS02s9FbUCENuTxvHO_WkOXdBp-dINYfT64QKiPnWISVJ2HZ4Za65i0WT4mnKB0rNVy2NKz04YYM5nfrYe-mA6n1EDM9LUPB_QcdvBwO0o029MITliWhgTbCUrqc309TsUWT3EpjI/s1600/eejb16.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create persistence unit in Netbeans" border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheVxyS02s9FbUCENuTxvHO_WkOXdBp-dINYfT64QKiPnWISVJ2HZ4Za65i0WT4mnKB0rNVy2NKz04YYM5nfrYe-mA6n1EDM9LUPB_QcdvBwO0o029MITliWhgTbCUrqc309TsUWT3EpjI/s400/eejb16.jpg" title="Create persistence unit in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It will generate an XML file called <b><i>persistence.xml</i></b><br />
<br />
<blockquote>
<pre class="xml" name="code"><?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="StudentManagementEA-ejbPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/studentmgt</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence></pre>
</blockquote>
<br />
Then we have to create an Entity class.<br />
<ul>
<li> Entity Class must have @Entity annotaion</li>
<li> Must have a public or protected no-arg constructor</li>
<li> If it passed as a detached object through a remote interface, Must implement Serializable</li>
<li> Must have an id annotated with @Id</li>
</ul>
I created a new java class called <i><b>Student.java</b> </i><br />
<blockquote>
<pre class="java" name="code">package com.sameera.domain;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "student")
public class Student implements Serializable {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
@Column(name = "first_name", length = 100)
private String firstName;
@Column(name = "last_name", length = 100)
private String lastName;
@Column(name = "email", length = 100)
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}</pre>
</blockquote>
Create session beans.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV0vTQiZNSGJBE4QtThSr75l1VOnLOvwsatUr5TjYwPSjni9y0B2xkMOgbY6rUCVIre4a1A2XmpCTkiRB_gK91oyWiIJG3zK-DGe6tlJBkYTPizEqILD7G8L16GFZ1WQfxX_WJx_el1FE/s1600/eejb4.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a session bean in Netbeans" border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV0vTQiZNSGJBE4QtThSr75l1VOnLOvwsatUr5TjYwPSjni9y0B2xkMOgbY6rUCVIre4a1A2XmpCTkiRB_gK91oyWiIJG3zK-DGe6tlJBkYTPizEqILD7G8L16GFZ1WQfxX_WJx_el1FE/s400/eejb4.jpg" title="Create a session bean in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I create a Stateless session bean with Local interface.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-X-ZcmHMxe-fl6NtZXTr3t9FLFVujZr4I_6YIAbKCaQBMzF4egQXRfw-HwMGrsEekcWbbD96sJdSFwD9OvkWuJEZ-7HAUtWt4usu4VZUbX_WjFZgpN6rzskxN3GW3vvbgutlSwPbbgM/s1600/ejb5.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a session bean in Netbeans" border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-X-ZcmHMxe-fl6NtZXTr3t9FLFVujZr4I_6YIAbKCaQBMzF4egQXRfw-HwMGrsEekcWbbD96sJdSFwD9OvkWuJEZ-7HAUtWt4usu4VZUbX_WjFZgpN6rzskxN3GW3vvbgutlSwPbbgM/s400/ejb5.jpg" title="Create a session bean in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It will generate <i>ManageStudentSessionBean.java</i> and <i>ManageStudentSessionBeanLocal.java</i> files.Then we can add business methods.Insert Code -> Add Business Method<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqY1VQlcEZBlg5Ht3d2ZlQYoJZqhyphenhyphen-XPe44ZhnxY6UAwOYkdeIgG8uCwWHeHnYOHNdutUuqlUjs3SsWsBUa-181mese9yCcpfnt72reox7PRByMG_wLH80UGtjqn4OpJ59wK971DVBseE/s1600/eejb19.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqY1VQlcEZBlg5Ht3d2ZlQYoJZqhyphenhyphen-XPe44ZhnxY6UAwOYkdeIgG8uCwWHeHnYOHNdutUuqlUjs3SsWsBUa-181mese9yCcpfnt72reox7PRByMG_wLH80UGtjqn4OpJ59wK971DVBseE/s400/eejb19.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFslGfPoJMQ0pTmo4v_q6ep9tU6acEKO3ZSEQ_w6REDxfqrpzp0RiRMIrzHH2HTgFg7uCNZG7STpwRtdilkNtgK2SSuR3N7ievEcJZ7VEDrvblC3TniL5bsyn4ByaxdGMRDVmTKUYO60/s1600/eejb20.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="63" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFslGfPoJMQ0pTmo4v_q6ep9tU6acEKO3ZSEQ_w6REDxfqrpzp0RiRMIrzHH2HTgFg7uCNZG7STpwRtdilkNtgK2SSuR3N7ievEcJZ7VEDrvblC3TniL5bsyn4ByaxdGMRDVmTKUYO60/s400/eejb20.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Give method name parameters and return types.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAXZHLD3IlyLUxzrFTkdOvXUrRyVbZwPTNK0clh-uZr5Y0fXJCwLGPFux6-aoxJdEHNEE4KrSwHsnXJI_0G0wqIrqGXGXRYhbgk2gykKQ9AATUJiwlOyh-p9UrqSFjq2BtogHRhG7mXQ/s1600/eejb22.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="321" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAXZHLD3IlyLUxzrFTkdOvXUrRyVbZwPTNK0clh-uZr5Y0fXJCwLGPFux6-aoxJdEHNEE4KrSwHsnXJI_0G0wqIrqGXGXRYhbgk2gykKQ9AATUJiwlOyh-p9UrqSFjq2BtogHRhG7mXQ/s400/eejb22.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b><i>ManageStudentSessionBeanLocal.java</i></b><br />
<blockquote>
<pre class="java" name="code">package com.sameera.session;
import com.sameera.domain.Student;
import javax.ejb.Local;
/**
*
* @author Sameera Jayasekara
*/
@Local
public interface ManageStudentSessionBeanLocal {
boolean addStudent(Student student);
}</pre>
</blockquote>
<b><i>ManageStudentSessionBean.java</i></b><br />
<blockquote>
<pre class="java" name="code">package com.sameera.session;
import com.sameera.domain.Student;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author Sameera Jayasekara
*/
@Stateless
public class ManageStudentSessionBean implements ManageStudentSessionBeanLocal {
@PersistenceContext
private EntityManager entityManager;
public boolean addStudent(Student student) {
entityManager.persist(student);
return true;
}
}
</pre>
</blockquote>
I didn't do exception handling and other stuff. Just added simple persist code and returned true. <br />
<br />
Now you can deploy <b>EJB</b> module.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTjxPH7oNK099JG46MwU8DuHFze_aktANPdgK2FgOM3ZV4dbed-sDYvFGRA8oty3FHoJYhoO-ZyzAc-c2mmiHkz0E18M3kplnDCqrCMLmYrrKypnsW1GwDACclBs4c0akgcgypmKs_0r0/s1600/eejb24.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTjxPH7oNK099JG46MwU8DuHFze_aktANPdgK2FgOM3ZV4dbed-sDYvFGRA8oty3FHoJYhoO-ZyzAc-c2mmiHkz0E18M3kplnDCqrCMLmYrrKypnsW1GwDACclBs4c0akgcgypmKs_0r0/s320/eejb24.jpg" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now go to database view and see generated tables.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7yInopN2WJ7SYwAfvaCt8EECPcN3SuG9jrTzhqdHOj-6F9XRvE1BZkFmgVajxHHHXgXTFQWO3A_VW8GMFfmH4xbwTFKmFiwI_2PSuTz76YIWOJZRmbFauObStXCfjInBzpgl5CsF81v0/s1600/eejb25.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7yInopN2WJ7SYwAfvaCt8EECPcN3SuG9jrTzhqdHOj-6F9XRvE1BZkFmgVajxHHHXgXTFQWO3A_VW8GMFfmH4xbwTFKmFiwI_2PSuTz76YIWOJZRmbFauObStXCfjInBzpgl5CsF81v0/s1600/eejb25.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now start working on web module.<br />
In index file I created a form to fill data of a student and submit to ManageStudentServlet. Add this code to <b><i>index.jsp</i></b><br />
<blockquote>
<pre class="html" name="code"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EJB3 JPA Glassfish - codesstore.blogspot.com</title>
</head>
<body>
<form action="ManageStudentServlet" method="POST">
<table border="0" width="100%">
<tr>
<td colspan="3"> ${message}</td>
</tr>
<tr>
<td>First Name</td>
<td>:</td>
<td><input type="text" name="fname" value="" /></td>
</tr>
<tr>
<td>Last Name</td>
<td>:</td>
<td><input type="text" name="lname" value="" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" name="email" value="" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" value="Add" name="Add" /></td>
</tr>
</table>
</form>
</body>
</html></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZ_oPjIx30qKVIPAPz3nIkovUnF1FJWzU9gltl4XYrBtqXjyAoX8zapNl-R6t6PBnm7gyz4fSvguE-yeQJ_cGnm5Ac75B06xVp5Wmauj7A3ZP2FbkX9cAj-_XM3VJWp7Ex29-hrDatg8/s1600/eejb26.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZ_oPjIx30qKVIPAPz3nIkovUnF1FJWzU9gltl4XYrBtqXjyAoX8zapNl-R6t6PBnm7gyz4fSvguE-yeQJ_cGnm5Ac75B06xVp5Wmauj7A3ZP2FbkX9cAj-_XM3VJWp7Ex29-hrDatg8/s400/eejb26.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Create a servlet to handle the request.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4gwhJaTb7rkazawP_IcNQ0HrPAU7BelrFLYU3m7_f4UD2lKmaB8n87Eb2VkXmqF-1RWLPL_AT6Sv1GH_1-_GSjP1nP13R7CYfDG_8RI775bqOvsFcVbByRsyOOPspUQkS1_fuS6a0RIw/s1600/eejb7.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Servlet in Netbeans" border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4gwhJaTb7rkazawP_IcNQ0HrPAU7BelrFLYU3m7_f4UD2lKmaB8n87Eb2VkXmqF-1RWLPL_AT6Sv1GH_1-_GSjP1nP13R7CYfDG_8RI775bqOvsFcVbByRsyOOPspUQkS1_fuS6a0RIw/s400/eejb7.jpg" title="Create a Servlet in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I gave the name ManageStudentServlet<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUqCKZJ9gekTOHt_7boh165TX2Az_2hw8-7eK4o9H5BYqnX0r7E6S1thgj46DZBAMsfTyUdLiu5IQ0D3wIHj-zL38tjpjj8lnOw2XdMrbfkWhpn6PNggAS9266StxqHeKaa4lE6-MQjvM/s1600/ejb8.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Servlet in Netbeans" border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUqCKZJ9gekTOHt_7boh165TX2Az_2hw8-7eK4o9H5BYqnX0r7E6S1thgj46DZBAMsfTyUdLiu5IQ0D3wIHj-zL38tjpjj8lnOw2XdMrbfkWhpn6PNggAS9266StxqHeKaa4lE6-MQjvM/s400/ejb8.jpg" title="Create a Servlet in Netbeans" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Call to session beans in EJB module using<i> dependancy injection</i><br />
Insert Code -> Call Enterprise Bean<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyUT9yE5hhZmBBhPxzj4I8X29V1SOan298Hi4tXzCMzUokej0vM44277u9qz6Xmh1nyKOT6uc6yGS3Zp-CBllEpTDSLM6gljBBmnPn4cHL5Rgqju2BeuURnhO8uefehi2mLLJkFz454rg/s1600/eejb23.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyUT9yE5hhZmBBhPxzj4I8X29V1SOan298Hi4tXzCMzUokej0vM44277u9qz6Xmh1nyKOT6uc6yGS3Zp-CBllEpTDSLM6gljBBmnPn4cHL5Rgqju2BeuURnhO8uefehi2mLLJkFz454rg/s400/eejb23.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Select ManageStudentSessionBean from list.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiJg3sSSBLyagBy9s6Tsd4dAu0U3z0VmB7Ld9dJfsuxOwxy34jQOXfBKPAoB2UuuDMUP4rDA7ISsRDuaeBrmpevPEpdk8A0ZtF4RiKbZTknYs-61JnEoyQDOP4aCI0iDvc1uu4bj_teIc/s1600/eejb27.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiJg3sSSBLyagBy9s6Tsd4dAu0U3z0VmB7Ld9dJfsuxOwxy34jQOXfBKPAoB2UuuDMUP4rDA7ISsRDuaeBrmpevPEpdk8A0ZtF4RiKbZTknYs-61JnEoyQDOP4aCI0iDvc1uu4bj_teIc/s400/eejb27.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<i><b>ManageStudentServlet.java</b></i><br />
<blockquote>
<pre class="java" name="code">package com.sameera.controller;
import com.sameera.domain.Student;
import com.sameera.session.ManageStudentSessionBeanLocal;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Sameera Jayasekara
*/
public class ManageStudentServlet extends HttpServlet {
@EJB
private ManageStudentSessionBeanLocal manageStudentSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String message = "";
String firstName = request.getParameter("fname");
String lastName = request.getParameter("lname");
String email = request.getParameter("email");
Student student = new Student();
student.setFirstName(firstName);
student.setLastName(lastName);
student.setEmail(email);
if (manageStudentSessionBean.addStudent(student)) {
message = "Student Successfuly Added";
} else {
message = "Student Adding Failed";
}
request.setAttribute("message", message);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}</pre>
</blockquote>
<br />
<i><b>web.xml </b></i>configuration file looks like this.<br />
<blockquote>
<pre class="xml" name="code"><?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ManageStudentServlet</servlet-name>
<servlet-class>com.sameera.controller.ManageStudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ManageStudentServlet</servlet-name>
<url-pattern>/ManageStudentServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app></pre>
</blockquote>
Now deploy the web module and run EnterpriseApplication.<br />
Check the database data will be added.<br />
<br />
Note: I added MySQL connector <i><b>mysql-connector-java-5.1.6-bin.jar</b> </i>to .../GF3/domain1/lib folder in glassfish.Goto services tab and right click on glassfish -> properties find glassfish domain folder.Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com2tag:blogger.com,1999:blog-5414775399749639642.post-51538282800087969162012-07-05T09:41:00.000+05:302012-07-06T11:43:51.357+05:30EJB3 and JPA step by step tutorial using EclipseHere I explain step by step how to create an EJB 3 with JPA application in Eclipse IDE.<br />
<a name='more'></a>This tutorial is for beginners who want to learn steps to create EJB persistence application with Eclipse and Jboss.<br />
<br />
<u>Tools used</u><br />
<br />
<a href="http://www.eclipse.org/">Eclipse (Galileo)</a><br />
<a href="http://www.jboss.org/">Jboss-5.1.0.GA</a><br />
<a href="http://www.mysql.com/">MySQL database</a><br />
<br />
First of all I'll create a database called <b><i>studentmgt_db</i></b>.
You can use MySQL GUI tool like MySQL Query Browser or MySQL Work Bench to create a database.<br />
<br />
Then I'm going to create a datasource. Go to your jboss directory ..<b>jboss-5.1.0.GA\docs\examples\jca</b> inside that folder there is file called <i><b>mysql-ds.xml</b></i>. I copied that file to ...<b>jboss-5.1.0.GA\server\default\deploy</b>. Then you can add your database details to that file.<br />
<br />
<h3>
mysql-ds.xml</h3>
<blockquote>
<pre class="xml" name="code"><?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 41017 2006-02-07 14:26:14Z acoliver $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>StudentMgtDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/studentmgt_db</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>123</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources></pre>
</blockquote>
Now create EJB project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN0xVza0skSpn6QhALCZNlpEuPnR0wmdlx64n9CEkAO-eWJ5xu25bxygZi3tfql2MgJ3oOCRILJ6tVjGDQlVYbR0PVj5UZfthNKPR0BEwo_U83pHW8wtjicFZP_LUJLUu6L8w6QYRSxHk/s1600/e1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create EJB project in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN0xVza0skSpn6QhALCZNlpEuPnR0wmdlx64n9CEkAO-eWJ5xu25bxygZi3tfql2MgJ3oOCRILJ6tVjGDQlVYbR0PVj5UZfthNKPR0BEwo_U83pHW8wtjicFZP_LUJLUu6L8w6QYRSxHk/s1600/e1.jpg" title="Create EJB project in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Create a new EJB project called <b>StudentManagementEJB</b>. I use JBoss server as application server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7FzvWWAQRSu0Y0xUQ861vjsBAUQ83mpWvbjdGULS_K_sv0cr4Z0si3FgESghjlLXJKjWPpp3JYa5dRZBeP1k7wSiCSMBVV5CwABZ3cdhGt_maHduVdYyS9rAviheeQFjM4Sp1iHPBThM/s1600/e2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create EJB project in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7FzvWWAQRSu0Y0xUQ861vjsBAUQ83mpWvbjdGULS_K_sv0cr4Z0si3FgESghjlLXJKjWPpp3JYa5dRZBeP1k7wSiCSMBVV5CwABZ3cdhGt_maHduVdYyS9rAviheeQFjM4Sp1iHPBThM/s1600/e2.jpg" title="Create EJB project in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Create a xml file called <b>persistence.xml</b> in <b>META-INF</b> directory.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7pQdh6Yb5uC0Xt_VYHSdSULvWf_As7EC3F8MCeNPpFTQOhddqJLzHbrIuiW5A56AGN5KU4-09zm9J1HVOSH6IfwTIkG8u6s4REyjSxmTBa8vG7OMCUZ2JnKBLEjoWSzqSYrH6gUykulA/s1600/3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create persistence.xml in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7pQdh6Yb5uC0Xt_VYHSdSULvWf_As7EC3F8MCeNPpFTQOhddqJLzHbrIuiW5A56AGN5KU4-09zm9J1HVOSH6IfwTIkG8u6s4REyjSxmTBa8vG7OMCUZ2JnKBLEjoWSzqSYrH6gUykulA/s1600/3.jpg" title="Create persistence.xml in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h3>
persistence.xml</h3>
<blockquote>
<pre class="xml" name="code"><?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="StudentMgtPU"
transaction-type="JTA">
<jta-data-source>java:/StudentMgtDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
</persistence>
</pre>
</blockquote>
Then we have to create an Entity class. Right click on the project -> New -> Class <br />
<br />
<ul>
<li> Entity Class must have @Entity annotaion</li>
<li> Must have a public or protected no-arg constructor</li>
<li> If it passed as a detached object through a remote interface, Must implement Serializable</li>
<li> Must have an id annotated with @Id</li>
</ul>
I created a entity class called <i><b>Student.java</b></i><br />
<i><b> </b> </i><br />
<h3>
Student.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.domain;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "student")
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
@Column(name = "first_name", length = 100)
private String firstName;
@Column(name = "last_name", length = 100)
private String lastName;
@Column(name = "email", length = 100)
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}</pre>
</blockquote>
Create session beans.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCRJaGI5EvmbKBa_H-dilrxrg5B-IMSCd__GzRtNsoWe-9s2ACM5YCz0_4bNT_NgHN7MNNEVgXMhwXQ-gdh6KWGNxaWcH3x1DrhK9K3j0Y6KU4IHwAt0siuQbpfr04ymwR51OEbBot8D0/s1600/4.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Session Bean in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCRJaGI5EvmbKBa_H-dilrxrg5B-IMSCd__GzRtNsoWe-9s2ACM5YCz0_4bNT_NgHN7MNNEVgXMhwXQ-gdh6KWGNxaWcH3x1DrhK9K3j0Y6KU4IHwAt0siuQbpfr04ymwR51OEbBot8D0/s1600/4.jpg" title="Create a Session Bean in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I create a Stateless session bean with Local interface.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieR5opfc10p-5iJWzfjpJuw-0iFX9_tA5Bk7niGzk6iT-4Q9gXhS370Jjvtu9u2jXPdiPe0OSpBIckLDyp0sOn3HVcsJCbD4aC2g2mJo5nTibsyskeS7Xp-Sj8Zfjytu3ASnsG4HCz0h0/s1600/5.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Session Bean in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieR5opfc10p-5iJWzfjpJuw-0iFX9_tA5Bk7niGzk6iT-4Q9gXhS370Jjvtu9u2jXPdiPe0OSpBIckLDyp0sOn3HVcsJCbD4aC2g2mJo5nTibsyskeS7Xp-Sj8Zfjytu3ASnsG4HCz0h0/s1600/5.jpg" title="Create a Session Bean in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I added business methods and added add student code.<br />
<br />
<h3>
ManageStudentSessionBeanLocal.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.session;
import javax.ejb.Local;
import com.sameera.domain.Student;
/**
*
* @author Sameera Jayasekara
*
*/
@Local
public interface ManageStudentSessionBeanLocal {
public boolean addStudent(Student Student);
}
</pre>
</blockquote>
<h3>
ManageStudentSessionBean.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.session;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.sameera.domain.Student;
/**
* Session Bean implementation class ManageStudentSessionBean
*
* @author Sameera Jayasekara
*/
@Stateless
public class ManageStudentSessionBean implements ManageStudentSessionBeanLocal {
@PersistenceContext
private EntityManager entityManager;
@Override
public boolean addStudent(Student student) {
entityManager.persist(student);
return true;
}
}
</pre>
</blockquote>
Run EJB application on Jboss server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVhpiqSoG8cy3e8lO3hjV6pzN0L_XxPanI27BIDHPRgEtQHzXFs8CYK0c3yMVuc51rDLm8EbDUbclNCkQLIDhMzpKWKncaWKZfFMHXGj-DMr4tyoqTwMxWPdFBcGm5-gz13NW_Gg7EVH4/s1600/6.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Run EJB project in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVhpiqSoG8cy3e8lO3hjV6pzN0L_XxPanI27BIDHPRgEtQHzXFs8CYK0c3yMVuc51rDLm8EbDUbclNCkQLIDhMzpKWKncaWKZfFMHXGj-DMr4tyoqTwMxWPdFBcGm5-gz13NW_Gg7EVH4/s1600/6.jpg" title="Run EJB project in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
See the server console JNDI bindings.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpW-2zdHP5d_wNwak4m_Vm6ROnvYcT-3rsXDXT7h-K6NB48w_DtORdAf5Dh2HmO07Uj3HnmCS_ifNcyn2vqcRFpsBQn5rhRiYM2bDMkgB2VBueN8Ee6ziAwlwixVp6VRff51bjY0wbstI/s1600/9.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="JNDI bindings in JBoss console" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpW-2zdHP5d_wNwak4m_Vm6ROnvYcT-3rsXDXT7h-K6NB48w_DtORdAf5Dh2HmO07Uj3HnmCS_ifNcyn2vqcRFpsBQn5rhRiYM2bDMkgB2VBueN8Ee6ziAwlwixVp6VRff51bjY0wbstI/s1600/9.jpg" title="JNDI bindings in JBoss console" /></a></div>
<br />
<br />
Now see the database. Student table is created.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJW26dD16KFPNIOs5LjWX32NeUfLDQ9akJ9bQ7PwC3KuUXRkDxYgith6NB46wGODKIERNBoYfDG7LDNyljUjfhu9DsSYwH-VkC4t3Py77AcAnU0ZlxNvk9Fd41Rz9a89rf8l-POKA4Ho8/s1600/8.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Created tables in MySQL Workbench" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJW26dD16KFPNIOs5LjWX32NeUfLDQ9akJ9bQ7PwC3KuUXRkDxYgith6NB46wGODKIERNBoYfDG7LDNyljUjfhu9DsSYwH-VkC4t3Py77AcAnU0ZlxNvk9Fd41Rz9a89rf8l-POKA4Ho8/s1600/8.jpg" title="Created tables in MySQL Workbench" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now start working on web application.<br />
File -> New -> Dynamic Web Project<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiLT9RLgwnWj3DSqQQLixCpKgfGDcsL8QfX4gI-8zlCv8ofm6DbOwJxD-v4pleF9vvQC2gwYTrj_jFnuZ5jRMkREQLqxRHMq7x6icwQ-cPz2FG4PSioKCFsKZiLFIC1tTTLM5uhhUrls8/s1600/10.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Dynamic web project in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiLT9RLgwnWj3DSqQQLixCpKgfGDcsL8QfX4gI-8zlCv8ofm6DbOwJxD-v4pleF9vvQC2gwYTrj_jFnuZ5jRMkREQLqxRHMq7x6icwQ-cPz2FG4PSioKCFsKZiLFIC1tTTLM5uhhUrls8/s1600/10.jpg" title="Create a Dynamic web project in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Go next Select 'Generate web.xml deployment descriptor' and finish.<br />
<br />
Right click on web content and create a new jsp called <b>index.jsp</b>. <br />
<br />
<h3>
index.jsp</h3>
<blockquote>
<pre class="html" name="code"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EJB3 JPA Jboss - codesstore.blogspot.com</title>
</head>
<body>
<form action="ManageStudentServlet" method="POST">
<table border="0" width="100%">
<tr>
<td colspan="3"> ${message}</td>
</tr>
<tr>
<td>First Name</td>
<td>:</td>
<td><input type="text" name="fname" value="" /></td>
</tr>
<tr>
<td>Last Name</td>
<td>:</td>
<td><input type="text" name="lname" value="" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" name="email" value="" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" value="Add" name="Add" /></td>
</tr>
</table>
</form>
</body>
</html></pre>
</blockquote>
<br />
Create a servlet to handle the request.<br />
File -> New -> Servlet<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9OyIjMb24dzlRCIWdHbDqELfAeNCRYkieQKXNoQaBNQ-41jjZdWxODgg8SXAdYsXxUzv4-7xrqVjnjEfGZz83s20oo-vBMq4BfcHTp-RqprLr5mTwyoNsYfv2S7_WyUFbiX_SlRXdek/s1600/11.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Create a Servlet in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9OyIjMb24dzlRCIWdHbDqELfAeNCRYkieQKXNoQaBNQ-41jjZdWxODgg8SXAdYsXxUzv4-7xrqVjnjEfGZz83s20oo-vBMq4BfcHTp-RqprLr5mTwyoNsYfv2S7_WyUFbiX_SlRXdek/s1600/11.jpg" title="Create a Servlet in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Before calling Enterprise beans we have to add the ejb project to build path.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5TVtjEMK6wd9MlMAshroNcyhfa2yr5fk0D2Jz_13j_IxOVnXyTqwUccz724o1ga8RqH1gsBTv09AvluNnOvci33K5-zQHIGZsLBA20vj744p5tUrn1k7MixG-2bj51j9Z7La5QzQu5pk/s1600/12.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Configure build path in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5TVtjEMK6wd9MlMAshroNcyhfa2yr5fk0D2Jz_13j_IxOVnXyTqwUccz724o1ga8RqH1gsBTv09AvluNnOvci33K5-zQHIGZsLBA20vj744p5tUrn1k7MixG-2bj51j9Z7La5QzQu5pk/s1600/12.jpg" title="Configure build path in Eclipse" /></a></div>
<br />
Go to projects tab and add StudentManagementEJB project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmux_fONjUM8wX1Mm2xYhvMNvsjIMRVaUlD58r9ok0cN13zAge1mVadbW42o1OBGgf-dMJrtwboj-r2_HbX7Ac1Jzm12mJm9gbxbZhjiDHucFp-ipIjTGjeV3I8JMi5lomkLYOgGUfQpw/s1600/13.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Configure build path in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmux_fONjUM8wX1Mm2xYhvMNvsjIMRVaUlD58r9ok0cN13zAge1mVadbW42o1OBGgf-dMJrtwboj-r2_HbX7Ac1Jzm12mJm9gbxbZhjiDHucFp-ipIjTGjeV3I8JMi5lomkLYOgGUfQpw/s1600/13.jpg" title="Configure build path in Eclipse" /></a></div>
<br />
<h3>
ManageStudentServlet.java</h3>
<blockquote>
<pre class="java" name="code">package com.sameera.controller;
import java.io.IOException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sameera.domain.Student;
import com.sameera.session.ManageStudentSessionBeanLocal;
/**
*
* @author Sameera Jayasekara
*
*/
public class ManageStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ManageStudentSessionBeanLocal manageStudentSessionBeanLocal;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Context context = new InitialContext();
manageStudentSessionBeanLocal = (ManageStudentSessionBeanLocal) context
.lookup("ManageStudentSessionBean/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String message = "";
String firstName = request.getParameter("fname");
String lastName = request.getParameter("lname");
String email = request.getParameter("email");
Student student = new Student();
student.setFirstName(firstName);
student.setLastName(lastName);
student.setEmail(email);
if (manageStudentSessionBeanLocal.addStudent(student)) {
message = "Student Successfuly Added";
} else {
message = "Student Adding Failed";
}
request.setAttribute("message", message);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
}
</pre>
</blockquote>
I looked up <b>ManageStudentSessionBean/local</b>. You can see server console to find JNDI bindings(see image given above)<br />
<br />
You can use @EJB annotaions to dependancy injection in a servlet but I tried it with JBoss that didn't work.Then I used @EJB(mappedName="Test"), @EJB with mappedName attribute( @Stateless(mappedName="Test") also used).Then it worked with remote interface. But I prefer JNDI lookup.<br />
<br />
<i><b>web.xml </b></i>configuration file looks like this.<br />
<br />
<h3>
web.xml</h3>
<blockquote>
<pre class="xml" name="code"><?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StudentManagementWeb</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>ManageStudentServlet</display-name>
<servlet-name>ManageStudentServlet</servlet-name>
<servlet-class>com.sameera.controller.ManageStudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ManageStudentServlet</servlet-name>
<url-pattern>/ManageStudentServlet</url-pattern>
</servlet-mapping>
</web-app></pre>
</blockquote>
Now You can run the web application.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEtpfV5pv38NxABNIweHsLoYcj_Cpj_l0Tq-cN5WeqKApI6Tv66RQzZXnV6Tvro4FKQgp0nUxs_aAl2L0hv8rvsLKpNrtJMX75PBZMwigjS4Ljh7SUl1T9Wc92rrWef7V4Nq44ud_zNj4/s1600/14.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Run a web project in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEtpfV5pv38NxABNIweHsLoYcj_Cpj_l0Tq-cN5WeqKApI6Tv66RQzZXnV6Tvro4FKQgp0nUxs_aAl2L0hv8rvsLKpNrtJMX75PBZMwigjS4Ljh7SUl1T9Wc92rrWef7V4Nq44ud_zNj4/s1600/14.jpg" title="Run a web project in Eclipse" /></a></div>
Check the database data will be added.<br />
<br />
<h3>
Project structure in Eclipse</h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkSXXdYWu31JA1pyAGPAFYJwpfx0P22TpkBuGaWOZgQ3zWTr4Sopw2X4QbZ8LyOkGC1124DC0Vff2CeYfsfK14kyLFyedsItIaZwjvPH9tJXxbJ8GcPKVliVvFWMB9B-JDddoUt64tI1w/s1600/15.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="EJB application project structure in Eclipse" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkSXXdYWu31JA1pyAGPAFYJwpfx0P22TpkBuGaWOZgQ3zWTr4Sopw2X4QbZ8LyOkGC1124DC0Vff2CeYfsfK14kyLFyedsItIaZwjvPH9tJXxbJ8GcPKVliVvFWMB9B-JDddoUt64tI1w/s1600/15.jpg" title="EJB application project structure in Eclipse" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Note : I put <b>mysql-connector-java-5.1.5-bin.jar</b> to ...<b>jboss-5.1.0.GA\server\default\lib</b>Sameera Jayasekarahttp://www.blogger.com/profile/12177589599660279514noreply@blogger.com18