The required jar files are
- asm.jar
- commons-collections-2.1.1.jar
- commons-logging-1.0.4.jar
- cglib-2.1.3.jar
- dom4j-1.6.1.jar
- ehcache-1.6.0-beta1.jar
- hibernate3.jar
- jta.jar
Put all the xml files in the source folder outside the created package.
Mention the class and default values properly
in the configuration to create session factory add the xml in case it is not detected directly.
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Also checkout the following example
Happy hibernating:)
//DataEntry.java
/*****************************************************************************
* In this program we are trying to applying the one-to-many relationship in
* both the ways.
* Concept:
* Trinaers can take multiple technologies
* A technology can be taken by multiple Trainers
*
* Through this application you can check how the logic works for one-to-many
* in both ways but its not suitable for actual implementation because this
* application creats two tables only - TRAINER and TECHNOLOGY.
*
* After running this application you will found that there is problem with
* inserting of new record next time.
* To resolve this problem you can convert this application to many-to-many.
*
*/
package ajo.hib;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class DataEntry {
public static void main(String[] args)throws IOException {
int i;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("2.insert 3.delete 1.update\n Enter your choice: ");
i=Integer.parseInt(br.readLine());
Employee e= new Employee(); e.setEmpId("E102");
EmployeeDAO ed= new EmployeeDAO();
switch(i)
{
case 1:
//for update
ed.update(e);
break;
case 2:
// for insert operation
//Employee e = new Employee();
e.setEmpId("E102");
e.setEmpName("Mahesh");
//EmployeeDAO ed = new EmployeeDAO();
ed.insert(e);
break;
case 3:
//for delete
e.setEmpId("E102");
EmployeeDAO eDAO= new EmployeeDAO();
eDAO.delete(e);
break;
default:
System.out.println("Invalid");
break;
}
}
}
* In this program we are trying to applying the one-to-many relationship in
* both the ways.
* Concept:
* Trinaers can take multiple technologies
* A technology can be taken by multiple Trainers
*
* Through this application you can check how the logic works for one-to-many
* in both ways but its not suitable for actual implementation because this
* application creats two tables only - TRAINER and TECHNOLOGY.
*
* After running this application you will found that there is problem with
* inserting of new record next time.
* To resolve this problem you can convert this application to many-to-many.
*
*/
package ajo.hib;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class DataEntry {
public static void main(String[] args)throws IOException {
int i;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("2.insert 3.delete 1.update\n Enter your choice: ");
i=Integer.parseInt(br.readLine());
Employee e= new Employee(); e.setEmpId("E102");
EmployeeDAO ed= new EmployeeDAO();
switch(i)
{
case 1:
//for update
ed.update(e);
break;
case 2:
// for insert operation
//Employee e = new Employee();
e.setEmpId("E102");
e.setEmpName("Mahesh");
//EmployeeDAO ed = new EmployeeDAO();
ed.insert(e);
break;
case 3:
//for delete
e.setEmpId("E102");
EmployeeDAO eDAO= new EmployeeDAO();
eDAO.delete(e);
break;
default:
System.out.println("Invalid");
break;
}
}
}
//EmployeeDAO.java
package ajo.hib;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class EmployeeDAO implements IEmployeeDAO {
public void insert(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
ses.save(e);
//e.setEmpName("rajeev"); // update statement gets fired for this
tr.commit();
}
public void update(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
e.setEmpName("Ajo");
System.out.println(e);
ses.save(e);
//ses.refresh(e);
tr.commit();
System.out.println(e);
}
public void delete(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
System.out.println(e);
ses.delete(e);
tr.commit();
System.out.println(e);
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class EmployeeDAO implements IEmployeeDAO {
public void insert(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
ses.save(e);
//e.setEmpName("rajeev"); // update statement gets fired for this
tr.commit();
}
public void update(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
e.setEmpName("Ajo");
System.out.println(e);
ses.save(e);
//ses.refresh(e);
tr.commit();
System.out.println(e);
}
public void delete(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
System.out.println(e);
ses.delete(e);
tr.commit();
System.out.println(e);
}
}
//IEmployeeDAO.java
package ajo.hib;
public interface IEmployeeDAO {
public void update(Employee e);
public void insert(Employee e);
public void delete(Employee e);
}
public interface IEmployeeDAO {
public void update(Employee e);
public void insert(Employee e);
public void delete(Employee e);
}
//Employee.java
package ajo.hib;
public class Employee
{
String empName;
String empId;
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return " Employee ID : "+empId + " Name : "+empName;
}
}
public class Employee
{
String empName;
String empId;
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return " Employee ID : "+empId + " Name : "+empName;
}
}
//employee.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ajo.hib.Employee" table="empl">
<id name="empId" column="EMPLOYEE_ID">
<generator class="assigned"/>
</id>
<property name="empName"/>
</class>
</hibernate-mapping>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ajo.hib.Employee" table="empl">
<id name="empId" column="EMPLOYEE_ID">
<generator class="assigned"/>
</id>
<property name="empName"/>
</class>
</hibernate-mapping>
//hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//hibernate/hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin1234</property>
<property name="hibernate.connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
<!DOCTYPE hibernate-configuration PUBLIC "-//hibernate/hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin1234</property>
<property name="hibernate.connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Dude whether we can use Eclipse/NetBeans IDE to develop this simple program or some other software have to be use for implementing.
ReplyDeleteeclipse galileo works fine
ReplyDeletegörüntülü show
ReplyDeleteücretlishow
LDJOZT