Proceduce Hibernate
1. Create store proceduce
2. Create Entity
----- STORED PROCEDURE QUERY #1 ----- DELIMITER $ CREATE PROCEDURE findAllEmployees () BEGIN SELECT * FROM employee; END $ DELIMITER ; ----- STORED PROCEDURE QUERY #2 ----- DELIMITER $ CREATE PROCEDURE findEmployeeByDepartment (IN emp_department VARCHAR(200)) BEGIN SELECT * FROM employee emp WHERE emp.edept = emp_department; END $ DELIMITER ; ----- STORED PROCEDURE QUERY #3 ----- DELIMITER $ CREATE PROCEDURE findEmployeeCountByDesignation (IN emp_designation VARCHAR(200), OUT designation_count INT(50)) BEGIN SELECT COUNT(*) INTO designation_count FROM employee emp WHERE emp.edesig = emp_designation; END $ DELIMITER ;
2. Create Entity
@Entity
@Table(name= "employee")
public class Employee {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int eid;
private String ename;
private String edesig;
private String edept;
private int esal;
public int getEid() {
return eid;
}
public void setEid(int eid) {
this.eid = eid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getEdesig() {
return edesig;
}
public void setEdesig(String edesig) {
this.edesig = edesig;
}
public String getEdept() {
return edept;
}
public void setEdept(String edept) {
this.edept = edept;
}
public int getEsal() {
return esal;
}
public void setEsal(int esal) {
this.esal = esal;
}
@Override
public String toString() {
return "Employee [eid=" + eid + ", ename=" + ename + ", edesig=" + edesig + ", edept=" + edept + ", esal="
+ esal + "]";
}
}
3. Test call proceduce by hibernate // Hibernate session object to start the db transaction.
Session s = config.buildSessionFactory().openSession();
// Fetching the data from the database using stored procedure queries.
// Stored procedure query #1
System.out.println(":::: Find all employees ::::");
StoredProcedureQuery allemployees = s.createStoredProcedureQuery("findAllEmployees", Employee.class);
List elist = (List) allemployees.getResultList();
for(Employee employee : elist) {
System.out.println(employee.toString());
}
// Stored procedure query #2
System.out.println("\n:::: Find employees department wise ::::");
StoredProcedureQuery department = s.createStoredProcedureQuery("findEmployeeByDepartment", Employee.class);
department.registerStoredProcedureParameter("emp_department", String.class, ParameterMode.IN);
String dparam = "Technology";
department.setParameter("emp_department", dparam);
List dlist = (List) department.getResultList();
for(Employee employee : dlist) {
System.out.println(employee.toString());
}
// Stored procedure query #3
System.out.println("\n:::: Find employee count by designation ::::");
StoredProcedureQuery count = s.createStoredProcedureQuery("findEmployeeCountByDesignation");
count.registerStoredProcedureParameter("emp_designation", String.class, ParameterMode.IN);
count.registerStoredProcedureParameter("designation_count", Integer.class, ParameterMode.OUT);
String param = "Lead";
count.setParameter("emp_designation", param);
count.execute();
Integer employee_count = (Integer) count.getOutputParameterValue("designation_count");
System.out.println("Employee count for designation= " + param + " is= " + employee_count);
// Closing the session object.
s.close();
Comments
Post a Comment