Hibernate
Hibernate
htm
https://github.com/topics/hackerrank-sql-solutions
https://github.com/Java-aid
https://github.com/topics/hackerrank-solutions
---------------03/01/2024—Wednesday---Class-1------------------------------------
1)employee.java
package com.cisco;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Id
@GeneratedValue
private int eid;
private String ename;
private double esal;
private String edes;
@Override
public String toString() {
return "eid=" + eid + ", ename=" + ename + ", esal=" + esal
+ ", edes=" + edes + " ";
}
2)empDao.java
package com.cisco;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
//driver class
//url, pass,mapp, @id donot give, transaction
//@xml file
public class empDao {
Transaction t = s.beginTransaction();
s.save(em);
t.commit();
s.close();
}
3)Test.java
package com.cisco;
public class Test {
EXCEPTIONS:
-----------------04/01/2024-------------Thursday---CLASS-2---------------------
Morning class
Topic: How retrieve the data by ID. How to update a row. How to delete a row.
Afternoonclass
Topic:getAll data, How to add multiple classes in xml file
Project:Hibernate
Packages: pojo, controller, com.test
Programs: 1)employee.java
2)department.java
3)product.java
4)getCon.java
5)empDao.java
6)depDao.java
7)productDao.java
8)Test.java
9)Testde.java
10)Testpdt.java
1)hibernate.cfg.xml
<property
name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</
property>
<property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibsep</
property>
<property
name="hibernate.connection.username">root</property>
<property
name="hibernate.connection.password">root</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<property
name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
2)employee.java
package com.cisco;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class employee {
@Id
@GeneratedValue
private int eid;
private String ename;
private double esal;
private String edes;
@Override
public String toString() {
return "eid=" + eid + ", ename=" + ename + ", esal=" + esal
+ ", edes=" + edes + " ";
}
3)empDao.java
package com.cisco;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
//driver classs
//url, pass,mapp, @id donot give, transaction
//@xml file
public class empDao {
Transaction t = s.beginTransaction();
s.save(em);
t.commit();
s.close();
}
Transaction t = s.beginTransaction();
employee e = (employee)s.get(employee.class, 1);
e.setEname("siva");
e.setEsal(456.7);
e.setEdes("se");
s.update(e);
t.commit();
s.close();
}
Transaction t = s.beginTransaction();
employee e = (employee)s.get(employee.class, 4);
s.delete(e);
t.commit();
s.close();
}
}
4)Test.java
package com.cisco;
//d.savedata(e);
//d.updatedata();
d.deletedata();
--------------------05/01/2024—Friday---Class -3--------------------------------------
TOPIC:
getAllselect();
getAllwhere();
getAllwheredynamic(2, 800.00);
updateselect(3,367.5,"mred");deleteusinghql("ghi");
************AGGREGATE
FUNCTIONS[COUNT,AVG,MAX,MIN,SUM,GROUPBY,
ORDERBY(ASC,DESC), HAVING AFTER THIS
JOINS]**********************
}
In this the query works when it is like below
Select*from employee
But when I need to write with where& and I want to retrieve only ename, esal
data we cannot do it here like this . we have another style and nature
https://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html
https://www.tutorialspoint.com/hibernate/hibernate_query_language.htm
1)empDao.java
package controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import pojo.employee;
Session s= getCon.con();
Transaction t = s.beginTransaction();
s.save(em);
t.commit();
s.close();
}
Session s= getCon.con();
Session s= getCon.con();
Transaction t = s.beginTransaction();
employee e = (employee)s.get(employee.class, 1);
e.setEname("siva");
e.setEsal(456.7);
e.setEdes("se");
s.update(e);
t.commit();
s.close();
Session s= getCon.con();
Transaction t = s.beginTransaction();
employee e = (employee)s.get(employee.class, 4);
s.delete(e);
t.commit();
s.close();
Session s= getCon.con();
List<employee>data=t.list();
for(employee p:data) {
System.out.println(p);
}
s.close();
//05/01/2024
public void getAllselect() {
Session s = getCon.con();
Query q =s.createQuery("select e.ename, e.esal,e.edes from
employee e");
List<Object[]> g = q.list();
for(Object[] o: g) {
System.out.println(o[0]+"---"+o[1]+"----"+o[2]);
}
s.close();
}
public void getAllwhere() {
Session s = getCon.con();
Query q =s.createQuery("select e.ename, e.esal, e.edes from
employee e where e.eid>=2 and e.esal>=800");
List<Object[]> g = q.list();
for(Object[] o: g) {
System.out.println(o[0]+"-----"+o[1]+"-----"+o[2]);
}
s.close();
}
public void getAllwheredynamic(int eid , double esal) {
Session s = getCon.con();
Query q =s.createQuery("select e.ename, e.esal, e.edes from
employee e where e.eid>=:eid and e.esal>=:esal");
q.setParameter("eid", eid);
q.setParameter("esal", esal);
List<Object[]> g = q.list();
for(Object[] o: g) {
System.out.println(o[0]+"-----"+o[1]+"-----"+o[2]);
}
s.close();
}
public void updateselect(int eid,double esal, String edes) {
Session s = getCon.con();
Transaction t = s.beginTransaction();
String h ="update employee set esal=:esal, edes=:edes where
eid=:eid";
Query q = s.createQuery(h);
q.setParameter("esal",esal);
q.setParameter("edes",edes);
q.setParameter("eid",eid);
int r=q.executeUpdate();
System.out.println("updated row:"+r);
t.commit();
s.close();
}
//Aggregate Functions
Session s= getCon.con();
}
public void count() {
Session s = getCon.con();
Query q =s.createQuery("select count(*) from employee");
List<Object> g = q.list();
System.out.println(g);
s.close();
Session s = getCon.con();
Query q =s.createQuery("select max(esal) from
employee");
List<Object> g = q.list();
System.out.println(g);
s.close();
Session s = getCon.con();
Query q =s.createQuery("select min(esal) from employee");
List<Object> g = q.list();
System.out.println(g);
s.close();
Session s = getCon.con();
Query q =s.createQuery("select sum(esal) from employee");
List<Object> g = q.list();
System.out.println(g);
s.close();
Session s = getCon.con();
Query q =s.createQuery("select
count(*),max(esal),min(esal),sum(esal) from employee");
List<Object[]> g = q.list();
for(Object[] p: g ) {
System.out.println(p[0]+"---"+p[1]+"---"+p[2]+"---"+p[3]);
}
s.close();
}
Session s = getCon.con();
Query q =s.createQuery("select
count(*),max(esal),min(esal),sum(esal),edes from employee group by edes ");
List<Object[]> g = q.list();
for(Object[] p: g ) {
System.out.println(p[0]+"---"+p[1]+"---"+p[2]+"---"+p[3]+"---"+p[4]);
}
s.close();
Session s = getCon.con();
Query q =s.createQuery("select
max(esal),min(esal),sum(esal),count(*),edes from employee group by edes
order by esal desc ");
List<Object[]> g = q.list();
for(Object[] p: g ) {
System.out.println(p[0]+"---"+p[1]+"---"+p[2]+"---"+p[3]+"---"+p[4]);
}
s.close();
2)employee.java
package pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Id
@GeneratedValue
private int eid;
private String ename;
private double esal;
private String edes;
@Override
public String toString() {
return "eid=" + eid + ", ename=" + ename + ", esal=" + esal
+ ", edes=" + edes + " ";
}
3)Test.java
package com.test;
import controller.empDao;
import pojo.employee;
//d.savedata(e);
//d.updatedata();
//d.deletedata();
//d.getByAll();
//d.getAllselect();
//d.getAllwhere();
//d.getAllwheredynamic(2, 800.00);
//d.updateselect(3,367.5,"mred");
//d.deleteusinghql("ghi");
//d.orderby();
//************AGGREGATE
FUNCTIONS[COUNT,AVG,MAX,MIN,SUM,GROUPBY,
ORDERBY(ASC,DESC), HAVING AFTER THIS
JOINS]**********************
//d.orderby();
//d.count();
//d.max();
//d.min();
//d.sum();
d.getAllagg();
//d.groupby();
//d.groupbyandorderby();
}
-----------------------08-01-2024---MONDAY-----------Class -4----------------------
TOPIC: HIBERNATE RELATIONS(ONE TO ONE RELATION
COMPLETED -- ONLY IN SINGLE DIRECTION NOT IN BIDIRECTION)
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
public int getPpid() {
return ppid;
}
public void setPpid(int ppid) {
this.ppid = ppid;
}
public String getPnum() {
return pnum;
}
public void setPnum(String pnum) {
this.pnum = pnum;
}
public String getPexp() {
return pexp;
}
public void setPexp(String pexp) {
this.pexp = pexp;
}
3)getCon.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
4)OneToOne.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.pojo.*;
r.save(p);
t.commit();
r.close();
}
//GET BY ID
public void getbyId(int pid) {
Session r = getCon.con();
//GETALL
public void getAll() {
Session r = getCon.con();
Transaction t = r.beginTransaction();
Query q=r.createQuery("from Person");
for(Person p:data) {
System.out.println(p.getPid()+", "+p.getPage()+",
"+p.getPqual()+", "+p.getPpt().getPnum()+", "+p.getPpt().getPexp());
}
//UPDATE
Transaction t = r.beginTransaction();
Person p = (Person) r.get(Person.class, pid);
p.setPname("klin");
p.setPage(55);
p.setPqual("MA");
p.getPpt().setPexp("2045");
r.update(p);
t.commit();
r.close();
}
//DELETE
Transaction t = r.beginTransaction();
Person p = (Person) r.get(Person.class, 4);
r.delete(p);
t.commit();
r.close();
}
public static void main(String[] args) {
OneToOne l = new OneToOne();
//l.savedata();
//l.getbyId(1);
l.getAll();
// l.update(1);
//l.delete();
}
-----------09/01/2024------------------Tuesday---------Class -5-------------------
TOPIC: HIBERNATE RELATIONS(ONE TO MANY RELATION
COMPLETED -- ONLY IN SINGLE DIRECTION NOT IN BIDIRECTION)
Project: HibernateRelations_OneToMany
Packages:
1)Pojo
2)Controller
Programs:
1)Person.java
2)Passport.java
3)Mobile.java
4)getCon.java
5)OM.java(Important)
6)OneToMany.java(Revise)
1)Person.java
package Pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqua;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpid")
private Passport pt;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "mkfid")
private List<Mobile> mb;
2)Passport.java
package Pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ptid;
private String ptnum;
private String pexp;
3)Mobile.java
package Pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
public Mobile() {
this.mnum = mnum;
this.msim = msim;
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public long getMnum() {
return mnum;
}
public void setMnum(long mnum) {
this.mnum = mnum;
}
public String getMsim() {
return msim;
}
public void setMsim(String msim) {
this.msim = msim;
}
4)getCon.java
package Controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
5)OM.java
// important
package Controller;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import Pojo.Person;
import Pojo.Mobile;
import Pojo.Passport;
import java.util.*;
public class OM {
public void savedata() {
Session g = getCon.con();
Transaction t = g.beginTransaction();
g.save(p);
t.commit();
g.close();
}
public void getbyId(int pid) {
Session r = getCon.con();
Transaction t = r.beginTransaction();
Passport m=k.getPt();
if( m !=null) {
System.out.println(m.getPtid()+","+m.getPtnum()
+","+m.getPexp());
else {
System.out.println("No Passport");
}
List<Mobile> mo = k.getMb();
if(mo!=null) {
for(Mobile mob:mo) {
System.out.println(mob.getMid()
+","+mob.getMnum()+","+mob.getMsim());
}
}
else {
System.out.println("No Mobile");
}
}
for(Person k:data) {
System.out.println(k.getPid()+","+k.getPname()
+","+k.getPqua());
Passport m=k.getPt();
if( m !=null) {
System.out.println(m.getPtid()+","+m.getPtnum()
+","+m.getPexp());
else {
System.out.println("No Passport");
}
List<Mobile> mo = k.getMb();
if(mo!=null&& !mo.isEmpty()) {
for(Mobile mob:mo) {
System.out.println(mob.getMid()
+","+mob.getMnum()+","+mob.getMsim());
}
}
else {
System.out.println("No Mobile");
}
}
mo.setMnum(765432197l);
}
}
r.update(p);
t.commit();
r.close();
}
r.delete(p);
t.commit();
r.close();
}
}
/*The use of mo.isEmpty() is to check whether the list of mobiles (mo) is
empty. In Java, the isEmpty() method is a part of the List interface, and it
returns true if the list contains no elements; otherwise, it returns false.
If the list is null, it means there are no mobiles associated with the person. If the
list is not null but empty, it also means there are no mobiles associated with the
person. In both cases, you want to print the "No Mobile" message.*/
6) OneToMany.java
package Controller;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import Pojo.Person;
import Pojo.*;
import java.util.List;
import java.util.ArrayList;
public class OneToMany {
Session r = getCon.con();
Transaction t = r.beginTransaction();
Person p = new Person();
p.setPid(3);
p.setPage(23);
p.setPname("hij");
p.setPqua("MTECH");
p.setMb(d);
//p.setPt(k);
r.save(p);
t.commit();
r.close();
}
public void getbyId(int pid) {
Session r = getCon.con();
Passport n = p.getPt();
if(n!=null) {
System.out.println(n.getPtid()+","+n.getPtnum()
+","+n.getPexp());
}
else {
System.out.println("No Passport");
}
List<Mobile> mo =p.getMb();
if(mo!=null) {
for(Mobile m:mo) {
System.out.println(m.getMid()+", "+m.getMnum()+",
"+m.getMsim());
}
}
else {
System.out.println("No Mobile");
}
}
public void getAll() {
Session r = getCon.con();
Transaction t = r.beginTransaction();
Query q=r.createQuery("from Person");
for(Person p:data) {
System.out.println(p.getPid()+", "+p.getPage()+",
"+p.getPqua());
Passport n = p.getPt();
if(n!=null) {
System.out.println(n.getPtid()+","+n.getPtnum()
+","+n.getPexp());
}
else {
System.out.println("No Passport");
}
List<Mobile> mo =p.getMb();
if(mo!=null) {
for(Mobile m:mo) {
System.out.println(m.getMid()+",
"+m.getMnum()+", "+m.getMsim());
}
}
else {
System.out.println("No Mobile");
}
System.out.println("-----------Next---------------");
}
}
for(Mobile n:mo) {
if(n.getMsim().equals("airtel")) {
n.setMnum(9876543210l);
}
}
r.update(p);
t.commit();
r.close();
}
-------------10/01/2024----------------Wednesday-------Class -6----------------------
Topic: HIBERNATE RELATIONS(ONE TO MANY RELATION -- ONLY IN
SINGLE DIRECTION NOT IN BIDIRECTION)
Sir given task
Project: HibRel
Packages:
1)Pojo
2)Controller
Programs:
1)Product.java
2)Vendor.java
3)Items.java
4)getCon.java
5)OneToMany_P_to_V.java
6)OneToMany_V_to_I.java
1)Product.java
package Pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
@Entity
public class Product {
@Id
@GeneratedValue
private int pid;
private String pname;
private double pprice;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "vkfid")
private List<Vendor> ven;
2) Vendor.java
package Pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
@Entity
public class Vendor {
public Vendor() {
}
@Id
@GeneratedValue
private int vid;
public Vendor(String vname, String vloc) {
super();
this.vname = vname;
this.vloc = vloc;
}
private String vname;
private String vloc;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "itfid")
private List<Items> it;
public int getVid() {
return vid;
}
3)Items.java
package Pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Items {
@Id
@GeneratedValue
private int iid;
public Items( String iname, String iexp, String iddate) {
super();
this.iname = iname;
this.iexp = iexp;
this.iddate = iddate;
}
private String iname;
private String iexp;
private String iddate;
4)getCon.java
package Controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
5) OneToMany_P_to_V.java
package Controller;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import Pojo.*;
import java.util.*;
p.setVen(ve);
r.save(p);
t.commit();
r.close();
Product k =(Product)r.get(Product.class,pid);
System.out.println(k.getPid()+","+k.getPname()
+","+k.getPprice());
List<Vendor> ve = k.getVen();
if(ve!=null) {
for(Vendor ven:ve) {
System.out.println(ven.getVid()+","+ven.getVname()
+","+ven.getVloc());
}
}
else {
System.out.println("No Vendors for this product");
}
}
public void getAll() {
Session r = getCon.con();
Transaction t=r.beginTransaction();
Query d =r.createQuery("from Product");
List<Product>data =d.list();
for(Product k:data) {
System.out.println(k.getPid()+","+k.getPname()
+","+k.getPprice());
List<Vendor> ve = k.getVen();
if(ve!=null) {
for(Vendor ven:ve) {
System.out.println(ven.getVid()
+","+ven.getVname()+","+ven.getVloc());
}
}
else {
System.out.println("No Vendors for this product");
}
}
public void update(int pid) {
Session r = getCon.con();
Transaction t =r.beginTransaction();
Product p=(Product)r.get(Product.class, pid);
List<Vendor> v =p.getVen();
for(Vendor ve: v) {
if(ve.getVloc().equals("KNR")) {
ve.setVname("Jai");
}
}
r.update(p);
t.commit();
r.close();
}
public void delete(int pid) {
Session r = getCon.con();
Transaction t =r.beginTransaction();
Product p=(Product)r.get(Product.class, pid);
r.delete(p);
t.commit();
r.close();
}
List<Object[]> g =q.list();
for(Object [] o:g) {
System.out.println(o[0]+"---"+o[1]+"----"+o[2]);
}
s.close();
6) OneToMany_V_to_I.java
package Controller;
import java.util.*;
import org.hibernate.Session;
import org.hibernate.Transaction;
import Pojo.*;
p.setIt(ite);
r.save(p);
t.commit();
r.close();
}
public static void main(String[] args) {
OneToMany_V_to_I h = new OneToMany_V_to_I();
h.savedata();
---------------23/01/2024------------------Tuesday-----Class -7-----------------------
AFTERNOON
Topic: Relations
One to one, One to many, many to many
Project: HibernateRelations OTO,OTM,MTM
Package: 1)com.pojo
2)com.controller
Programs: 1)Person.java
2)Passport.java
3)course.java
4)mobile.java
5)getCon.java
6)OneToOne.java
7)OneToMany.java
------------------------------24/01/2024--------Wednesday---Class -8-----------------
Topic: Relations
One to one, one to many, many to many
Project: Hibernate_All
Package: 1)com.pojo
2)com.controller
Programs: 1)Person.java
2)Passport.java
3)course.java
4)mobile.java
5)All.java
6)GetSessionFactory.java
7)OneToOne.java
8)OneToMany.java
9)ManyToMany.java
10)All.java
WE DONE ONLY SAVE DATA
------------------------25/01/2024--------Thursday------Class -9--------------------
Topic: Relations
One to one, one to many, many to many
Project: Hibernate_All
Package: 1)com.pojo
2)com.controller
Programs: 1)Person.java
2)Passport.java
3)course.java
4)mobile.java
5)All.java
6)GetSessionFactory.java
7)OneToOne.java
8)OneToMany.java
9)ManyToMany.java
10)All.java
Programs:
1)Person.java
2)Passport.java
3)mobile.java
4)course.java
5)GetSessionFactory.java
6)All.java(See getByAll1() & getByAll2() All methods not required)
1)Employee.java
2)GetSessionFactory.java
3)UnitTest.java
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}*/
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getPqual() {
return pqual;
}
public void setPqual(String pqual) {
this.pqual = pqual;
}
public Passport getPpt() {
return ppt;
}
public void setPpt(Passport ppt) {
this.ppt = ppt;
}
public List<mobile> getMob() {
return mob;
}
public void setMob(List<mobile> mob) {
this.mob = mob;
}
public List<course> getCou() {
return cou;
}
public void setCou(List<course> cou) {
this.cou = cou;
}
}
2)Passport.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}
3)mobile.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
this.mnum = mnum;
this.msim = msim;
}
}
4)course.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
6)All.java
package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Passport;
import com.pojo.Person;
import com.pojo.course;
import com.pojo.mobile;
s.save(p);
t.commit();
s.close();
}
public void updatedata(int pid) {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t = s.beginTransaction();
Person p =(Person)s.get(Person.class, pid);
p.setPname("Chinna");
s.update(p);
t.commit();
s.close();
sf.close();
}
public void deletedata(int pid) {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t = s.beginTransaction();
Person p =(Person)s.get(Person.class, pid);
s.delete(p);
t.commit();
s.close();
sf.close();
}
public void getById(int pid) {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Person p=(Person)s.get(Person.class, pid);
System.out.println(p);
}
public void getByAll() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Query q=s.createQuery("from Person");
List<Person> per =q.list();
for(Person k:per) {
System.out.println(k);
}
}
public static void getByAll2() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Query q=s.createQuery("from Person p");
List<Person> pers =q.list();
{
for(Person p:pers) {
if(p!=null&&p.getPpt()!=null&&!
(p.getMob().isEmpty()&&p.getCou().isEmpty())) {
System.out.println(p+"\n"+p.getPpt()+"\
n"+p.getMob()+"\n"+p.getCou());
}
}
}
}
public static void getByAll1() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Query q=s.createQuery("from Person p");
List<Person> pers =q.list();
for(Person g: pers) {
System.out.println(g);
if(g.getPpt()!=null) {
System.out.println(g.getPpt());
}
else {
System.out.println("No passport");
}
if(g.getMob().isEmpty()) {
System.out.println("No Mobile");
}else {
for(mobile mo:g.getMob()) {
System.out.println(mo);
}
if(g.getCou().isEmpty()) {
System.out.println("No Course");
}
else {
for(course co:g.getCou()) {
System.out.println(co);
}
}
}
}
Passport k = p.getPpt();
if(k!=null) {
System.out.println(k);
}
else {
System.out.println("No passport for"+p.getPname());
}
List<mobile> m = p.getMob();
if(m!=null) {
System.out.println(m);
for(mobile l:m) {
System.out.println(l);
}
}
else {
System.out.println("No mobile");
List<course> c = p.getCou();
if(c!=null) {
//System.out.println(c);
for(course d: c) {
System.out.println(d);
}
}
else {
System.out.println("No courses ");
}
}
p.setMob(mob);
course m3 = new course();
m3.setCname("Python");
m3.setCfee(30.5);
p.setCou(cou);
//t.saveddata(p);
//t.updatedata(3);
//t.getById(3);
t.getByAll1();
//t.getByAll2();
//t.getById1(5);
}
}
Project: EmpHib
1)Employee.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "EmpHib")
public class Employee {
@Id
@GeneratedValue
private int eid;
private String ename;
private double esal;
private String edes;
private String eloc;
public Employee() {
public Employee(int eid, String ename, double esal, String edes, String
eloc) {
super();
this.eid = eid;
this.ename = ename;
this.esal = esal;
this.edes = edes;
this.eloc = eloc;
}
@Override
public String toString() {
return "Employee [eid=" + eid + ", ename=" + ename + ", esal=" +
esal + ", edes=" + edes + ", eloc=" + eloc
+ "]";
}
2)GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
3)UnitTest.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.*;
public class UnitTest {
s.save(p);
t.commit();
s.close();
sf.close();
}
public static void update(int eid,String ename, double esal, String edes)
{
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction k =s.beginTransaction();
Query p =s.createQuery("update Employee set ename=:ename,
esal=:esal, edes=:edes where eid=:eid");
p.setParameter("ename", ename);
p.setParameter("esal", esal);
p.setParameter("edes", edes);
p.setParameter("eid", eid);
//a.savedata(e);
//a.getByID(1);
//a.getByName("lilly");
//a.update(1,"anj", 77.7,"dev");
//a.delete("hj");
a.getAll();
}
-------27/01/2024-------Saturday----------Class -11--------------------------------
Morning
Topic: Aggregate Functions by HQL Queries Orderby(ASC, DESC), MIN,
MAX, AVG, SUM, COUNT(*), Groupby, Groupby and having
Always use having when you use aggregate functions. Do not use where in
aggregate functions.
Projects: Hib_AggregateFunctions
Afternoon
Topic: Joins
Project: Hib_Joins(One to One relation"E:\html\Slokam\28 12 2023 O-
O,O-M,M-O,M-M Relations.sql")
Package:
1)com.pojo
2)com.controller
Programs:
1)Person.java
2)Passport.java
3)getCon.java
4)OneToOne.java
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + "]";
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getPqual() {
return pqual;
}
public void setPqual(String pqual) {
this.pqual = pqual;
}
public Passport getPpt() {
return ppt;
}
public void setPpt(Passport ppt) {
this.ppt = ppt;
}
2)Passport.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}
private String pnum;
private String pexp;
public int getPpid() {
return ppid;
}
public void setPpid(int ppid) {
this.ppid = ppid;
}
public String getPnum() {
return pnum;
}
public void setPnum(String pnum) {
this.pnum = pnum;
}
public String getPexp() {
return pexp;
}
public void setPexp(String pexp) {
this.pexp = pexp;
}
}
3)getCon.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class getCon {
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.*;
List<Object[]> l =p.list();
for(Object[] pe: l) {
Integer e =(Integer)pe[0];
String s = (String)pe[1];
String g = (String)pe[2];
String h = (String)pe[3];
System.out.println(e+", "+s+", "+g+", "+h);
}
}
public static void main(String[] args) {
OneToOne l = new OneToOne();
//l.Joins(2); /*It is not using by using select*/
l.Joinsbyselect();/*It is using by using select*/
}
---------------------29/01/2024-------Monday--------Class -12------------------------
Morning
Topic: Joins
One To One
One To Many
Many To Many
Many To One
Project: HibnJoins
Package:
1)com.pojo
2)com.controller
Programs:
1)getCon.java
2)OneToOne.java
3)ManyToOne.java
4)ManyToMany.java
Afternoon
5)All.java
1)Person.java
package com.pojo;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt
+ ", mob=" + mob + ", cou=" + cou + "]";
}
public int getPid() {
return pid;
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
2)Passport.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}
private String pnum;
private String pexp;
public int getPpid() {
return ppid;
}
public void setPpid(int ppid) {
this.ppid = ppid;
}
public String getPnum() {
return pnum;
}
public void setPnum(String pnum) {
this.pnum = pnum;
}
public String getPexp() {
return pexp;
}
public void setPexp(String pexp) {
this.pexp = pexp;
}
3) mobile.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
4)course.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
5)getCon.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
6)OneToOne.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
for(Object[] d: l) {
System.out.println(d[0]+"---"+d[1]+"---"+d[2]+"---"+d[3]+"---"+d[4]);
}
}
2)OneToMany.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.pojo.Person;
for(Object[] d: l) {
System.out.println(d[0]+"---"+d[1]+"---"+d[2]+"---"+d[3]+"---"+d[4]);
}
}
3)Many To Many.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
for(Object[] d: l) {
System.out.println(d[0]+"---"+d[1]+"---"+d[2]+"---"+d[3]+"---"+d[4]);
}
public static void main(String[] args) {
}}
4)All.java
package com.controller;
import java.util.List;
import java.util.HashSet;
import org.hibernate.Query;
import org.hibernate.Session;
for(Object[] d: l)
{
k.add(d[0]+"---"+d[1]+"---"+d[2]+"-Person
Passport--"+d[3]+"---"+d[4]);
for(Object[] d: l)
{
k1.add(d[5]+"-Mobile--"+d[6]);
for(Object[] d: l)
{
k2.add(d[7]+"-course--"+d[8]);
System.out.println(k);
System.out.println(k1);
System.out.println(k2);
}
public static void main(String[] args) {
}
}
----------------30/01/2024—Tuesday---------Class -13------------------------------
Topic: Hibnerate Lifecycle
Morning:
Notes Explanation, Hibnerate Lifecycle
Afternoon: Test the working of save(), persist(), saveOrUpdate(), update()
Project: HibnerateLifeCyCle(Transient, Persistent, Detached)
Packages:
1)com.pojo
2)com.controller
Programs:
1)Person.java
2)Passport.java
3)mobile.java
4)course.java
5)GetSessionFactory.java
6)unitperson.java
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}*/
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}
}
2)Passport.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}
}
3)mobile.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
this.mnum = mnum;
this.msim = msim;
}
}
4)course.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
5)GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
6)unitperson.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.pojo.*;
public class unitperson {
public void savedata() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t= s.beginTransaction();
Person p = new Person();
/*p.setPname("Manju");
p.setPage(22);
p.setPqual("MCA");*/
p.setPid(3);
p.setPname("Manju");
p.setPage(24);
p.setPqual("BSC");
t.commit();
s.close();
sf.close();
s.update(p);
t.commit();
s.close();
sf.close();
}
}
-----------31/01/2024-------------------Wednesday---Class -14-------------
Topic:
Save(), Evict(), Merge(), clear(), Update()[Evict(), clear() will work with
update only not with save]
Session.save(): Entity Objects will be saved in to database by calling the
database connection. It just saves, after that you have duty to commit by
t.commit();
Session.clear(): session will not be closed, but all objects within the session
will be removed.
Session.evict(): same as clear(), but only specified object will be removed from
the session.
public void clear() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t= s.beginTransaction();
Person p = new Person();
p.setPid(5);
p.setPname("Manjula");
p.setPage(22);
p.setPqual("BCOM");
Session s1 = sf.openSession();
Transaction t1 = s1.beginTransaction();
Person p1 = new Person();
p1.setPid(1);
p1.setPname("lly");
p1.setPage(23);
p1.setPqual("MA");
s.update(p);
s1.update(p1);
//s1.evict(p1);
//s.clear();
t.commit();
t1.commit();
s.close();
s1.close();
sf.close();
}
1)unitperson.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.pojo.*;
public class unitperson {
public void savedata() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t= s.beginTransaction();
Person p = new Person();
/*p.setPname("Manju");
p.setPage(22);
p.setPqual("MCA");*/
p.setPname("Manju");
p.setPage(24);
p.setPqual("BSC");
t.commit();
s.close();
sf.close();
t.commit();
s1.close();
sf1.close();
}
public void clear() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t= s.beginTransaction();
Person p = new Person();
p.setPid(5);
p.setPname("Manjula");
p.setPage(22);
p.setPqual("BCOM");
Session s1 = sf.openSession();
Transaction t1 = s1.beginTransaction();
Person p1 = new Person();
p1.setPid(1);
p1.setPname("lly");
p1.setPage(23);
p1.setPqual("MA");
s.update(p);
s1.update(p1);
//s1.evict(p1);
//s.clear();
t.commit();
t1.commit();
s.close();
s1.close();
sf.close();
//By save method evit(), clear(), close() are not working. But
update they are working properly.
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t= s.beginTransaction();
Person p = new Person();
p.setPname("lilly flower");
p.setPage(25);
p.setPqual("MSC");
//s.evict(p);
s.save(p);
s.evict(p);
//s.clear();
//s.close();
t.commit();
//s.evict(p);
s.close();
sf.close();
}
public static void main(String[] args) {
unitperson t = new unitperson();
//t.savedata();
//t.updatedata(2);
//t.savedata1();
//t.updatedata(4);
t.clear();
}
}
2) Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}*/
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}
--------02/02/2024-----------Friday-----CLASS --15-------------------------------
TOPIC:
Flush() method is discussed when
Pagination : When you open pagination Gmail t.ge
Bidirectional – if we save from passport then person should also change
Remove tostring(),
Now one to one
I will save person into passport
AFTERNOON:
Topic: Criteria.
Criteria is similar to Query but Criteria increases the speed
Project: Hibnerate_All_Bidirectional
Packages: 1)com.pojo
2)com.controller
Programs:
1)GetSessionFactory.java
2)Criteriacl.java
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}*/
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}*/
2)Passport.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
/*@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}*/
@OneToOne(cascade=CascadeType.ALL)
private Person pers;
}
3)mobile.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
}
@ManyToOne(cascade =CascadeType.ALL)
private Person pm;
this.mnum = mnum;
this.msim = msim;
}
}
4)course.java
package com.pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkcid")},
inverseJoinColumns = {@JoinColumn(name = "fkpid")})
private List<Person> per;
5)GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
6) OTO_Bidirectional.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Passport;
import com.pojo.Person;
s.save(p);
t.commit();
s.close();
}
7)MTO.java
package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Person;
import com.pojo.mobile;
s.save(p);
t.commit();
s.close();
}
public static void main(String[] args) {
MTO t = new MTO();
p.setMob(mob);
t.saveddata(p);
}
}
8)MTM.java
package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Person;
import com.pojo.course;
s.save(p);
t.commit();
s.close();
}
public static void main(String[] args) {
m.setPer(per);
j.saveddata(m);
//t.updatedata(1);
//t.getById1(4);
//t.getByAll();
}
}
AFTERNOON:
2)Criteriacl.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
//c.add(Restrictions.ge("page", 50));
//c.add(Restrictions.le("page", 25));
------------------03/02/2024-------------Saturday----------Class -16------------
Topic: OneToOne, OneToMany, ManyToMany Relations Using Criteria
Project: Hibnerate_Criteria_OTO,OTM,MTM1
Packages:
1)com.pojo
2)com.controller
Programs:
1)Person.java
2)Passport.java
3)course.java
4)mobile.java
5) GetSessionFactory.java
6) OTO_Criteria.java
7) OTM_Criteria.java
8) MTM_Criteria.java
1)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}*/
}
2)Passport.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp=" +
pexp + "]";
}
@OneToOne(cascade=CascadeType.ALL)
private Person pers;
}
3)mobile.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
}
@ManyToOne(cascade =CascadeType.ALL)
private Person pm;
this.mnum = mnum;
this.msim = msim;
}
}
4)course.java
package com.pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkcid")},
inverseJoinColumns = {@JoinColumn(name = "fkpid")})
private List<Person> per;
5)GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
6) OTO_Criteria.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
public class OTO_Criteria {
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
7)OTM_Criteria.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
}
}
8)MTM_Criteraia.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
//ManyTOMany
/*Criteria c =s.createCriteria(Person.class, "p");
c.createAlias("p.cou", "c");
c.add(Restrictions.eq("c.cname","Java"));*/
List<Person> data = c.list();
for(Person n: data) {
System.out.println(n);
}
----------05/02/2024---------------Monday---------Class -17--------------------
Topic:
We applied OneToOne, OneToMany, ManyToMany with joins.
In yesterday class only we learnt about Restrictions. If we want we can apply
again such as orderby, greaterthan, lessthan.
PROJECTIONS: Instead of getting entire object we can get specific
columns(Properties) using projections.
Projects:
Hibnerate_Restrictions_with_joins
Hibnerate Projections
Packages:
Project-1: Hibnerate_Restrictions_with_joins
com.pojo
Person.java
Passport.java
mobile.java
course.java
com.controller
GetSessionFactory.java
OTO_Criteria.java
OTM_Criteria.java
MTM_Criteria.java
Project-2: Hibnerate Projections
com.pojo
Person.java
Passport.java
mobile.java
course.java
com.controller
GetSessionFactory.java
ProjectionIntroduction.java
Projectionwith_AND_OR.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
@GeneratedValue
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL)
@JoinColumn(name = "fkpid")
private Passport ppt;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fkpersid")
private List<mobile> mob;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkpid")},
inverseJoinColumns = {@JoinColumn(name = "fkcid")})
private List<course> cou;
public Person() {
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}*/
}
2)Passport.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp="
+ pexp + "]";
}
@OneToOne(cascade=CascadeType.ALL)
private Person pers;
3)course.java
package com.pojo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "percou",
joinColumns = {@JoinColumn(name = "fkcid")},
inverseJoinColumns = {@JoinColumn(name = "fkpid")})
private List<Person> per;
}
4)mobile.java
package com.pojo;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
}
@ManyToOne(cascade =CascadeType.ALL)
private Person pm;
this.mnum = mnum;
this.msim = msim;
}
5)GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
So we applied joins on single table and also we applied with joins
6) OTO_Criteria.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Criteria c =s.createCriteria(Person.class, "p");
c.createAlias("p.ppt", "pt");
c.add(Restrictions.eq("pt.pnum","sder123"));
/*Criteria c =s.createCriteria(Person.class, "p");
c.createAlias("p.ppt", "pt");
c.add(Restrictions.eq("p.pname","klin"));*/
List<Person> data = c.list();
for(Person n: data) {
System.out.println(n);
}
}
7) OTM_Criteria.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
8)MTM_Criteria.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
//ManyTOMany
Criteria c =s.createCriteria(Person.class, "p");
c.createAlias("p.cou", "c");
c.add(Restrictions.eq("c.cname","Java"));
List<Person> data = c.list();
for(Person n: data) {
System.out.println(n);
}
}
Project-2: Hibnerate Projections
Package-1: com.pojo is same as above
Same programs
1)Person.java
2)Passport.java
3)mobile.java
4)course.java
Package -2:com.controller
http://javainsimpleway.com/criteria-with-projection/
projections with and or in hibernate criteria example
https://www.tutorialspoint.com/hibernate/hibernate_criteria_queries.htm
5) GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
6)ProjectionIntroduction.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
ProjectionList pl =Projections.projectionList();
pl.add(Projections.property("p.pname"));
pl.add(Projections.property("pt.pnum"));
pl.add(Projections.property("m.msim"));
pl.add(Projections.property("c.cfee"));
pl.add(Projections.property("c.cname"));
c.setProjection(pl);
c.add(Restrictions.gt("c.cfee",30.0));
System.out.println(n[0]+"---"+n[1]+"-----"+n[2]+"---"+n[3]+"----"+n[4]);
}
}
If we take individual restriction, it will return criterion, we will add this
criterion to logicalExpression.
Again this logicalExpression is added to criteria.
Logical Expression is used when we need to apply and/Or operation on multiple
restrictions.
7) Projectionwith_AND_OR.java
package com.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.LogicalExpression;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import com.pojo.Person;
ProjectionList pl =Projections.projectionList();
pl.add(Projections.property("p.pname"));
pl.add(Projections.property("pt.pnum"));
pl.add(Projections.property("m.msim"));
pl.add(Projections.property("c.cfee"));
pl.add(Projections.property("c.cname"));
c.setProjection(pl);
//c.add(Restrictions.gt("c.cfee",30.0));
//c.add(Restrictions.gt("m.msim","jio"));
System.out.println(n[0]+"---"+n[1]+"-----"+n[2]+"---"+n[3]+"----"+n[4]);
}
Morning
Topic: Hibnerate Projections with Aggregations
Aggregation Functions Using the Queries(Query) and without using
Queries(Criteria)
Forward Engineering: From ui part go back. How is UI part in that
we will design the tables.
AFTERNOON:
TOPIC:
1)One Pojo Properties should be inserted into Two Tables
2)Two Pojo Class Properties should be inserted into One Table
Project: HibnerateOnepojoToManyTables,ManypojoToOneTables
Packages:
1)com.pojo
2)com.controller
Programs:
1)Address.java
2) OneClassIntoTwoTables.java
3)One.java
4)Two.java
5) TwoClassesIntoSingleTable.java
Morning
Programs:
1)Person.java
2)Passport.java
3)mobile.java These Pojo Classes are same as above class . See 5/2/24
4)course.java
5) ProjectionAggregationFunctions.java
/*--------Aggregation Functions Using the Queries(Query) and without using
Queries(Criteria)-------*/
package com.controller;
import java.util.List;
import org.apache.poi.sl.usermodel.PlaceableShape;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.security.access.method.P;
import com.pojo.Person;
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Query p = s.createQuery("select count(*)from Person ");
List<Object[]> data = p.list();
System.out.println(data);
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Query p = s.createQuery("select count(*), max(page),min(page),
sum(page), avg(page) from Person p group by page having page>=40 order by
page desc ");
List<Object[]> data = p.list();
for(Object[] n: data) {
System.out.println("Count: "+n[0]+"\n"+"Maximum Age:
"+n[1]+"\n"+"Minimum Age: "+n[2]+"\n"+"Sum of All ages: "+n[3]+"\
n"+"Avg of all ages: "+n[4]);
}
ProjectionList pl =Projections.projectionList();
//pl.add(Projections.countDistinct("page"));
pl.add(Projections.max("page"));
pl.add(Projections.min("page"));
pl.add(Projections.avg("page"));
pl.add(Projections.sum("page"));
pl.add(Projections.count("page"));
pl.add(Projections.groupProperty("page"));
c.setProjection(pl);
c.addOrder(Order.desc("page"));
c.add(Restrictions.gt("page",30));
System.out.println(n[0]+"---"+n[1]+"-----"+n[2]+"---"+n[3]+"----"+n[4]+"---"+
n[5]);
}
}
AFTERNOON:
TOPIC:
1)One Pojo Properties should be inserted into Two Tables
2)Two Pojo Class Properties should be inserted into One Table
Project: HibnerateOnepojoToManyTables,ManypojoToOneTables
Packages:
1)com.pojo
2)com.controller
Programs:
1)Address.java
2) OneClassIntoTwoTables.java
3)One.java
4)Two.java
5) TwoClassesIntoSingleTable.java
1)Address.java
package com.pojo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SecondaryTable;
import javax.persistence.Table;
@Entity
@Table(name ="Physicaladdress")
@SecondaryTable(name = "Mailingaddress")
public class Address {
@Id
@GeneratedValue
private int aid;
@Column(table ="Physicaladdress")
private String plocation;
@Column(table ="Physicaladdress")
private String pstreet;
@Column(table ="Physicaladdress")
private String pphone;
@Column(table ="Mailingaddress")
private String mlocation;
@Column(table ="Mailingaddress")
private String mstreet;
@Column(table ="Mailingaddress")
private String mphone;
public Address() {
}
}
2)OneClassIntoTwoTables.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Address;
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Transaction t = s.beginTransaction();
Address l =(Address)s.get(Address.class, aid);
System.out.println(l);
}
public void getById1(int pid) {
SessionFactory sf = GetSessionFactory.con();
Session d = sf.openSession();
Address p = (Address) d.get(Address.class, pid);
if (p != null) {
if (p.getPlocation() != null && p.getPstreet() != null &&
p.getPphone() != null) {
System.out.println("Physical Address: ");
System.out.println("Location: " + p.getPlocation());
System.out.println("Street: " + p.getPstreet());
System.out.println("Phone: " + p.getPphone());
} else {
System.out.println("No Physical Address ");
}
if (p.getMlocation() != null && p.getMstreet() != null &&
p.getMphone() != null) {
System.out.println("Mailing Address: ");
System.out.println("Location: " + p.getMlocation());
System.out.println("Street: " + p.getMstreet());
System.out.println("Phone: " + p.getMphone());
} else {
System.out.println("No Mailing Address ");
}
} else {
System.out.println("No Address Found");
}
d.close();
}
public void getById2(int pid) {
SessionFactory sf = GetSessionFactory.con();
Session d = sf.openSession();
Address p = (Address) d.get(Address.class, pid);
if (p != null) {
if (p.getPlocation() != null || p.getPstreet() != null || p.getPphone() !=
null) {
System.out.println("Physical Address: ");
if (p.getPlocation() != null) {
System.out.println("Location: " + p.getPlocation());
}
if (p.getPstreet() != null) {
System.out.println("Street: " + p.getPstreet());
}
if (p.getPphone() != null) {
System.out.println("Phone: " + p.getPphone());
}
} else {
System.out.println("No Physical Address");
}
}
public void updatedata(int aid)
{
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t = s.beginTransaction();
Address p =(Address)s.get(Address.class, aid);
p.setPlocation("cherry");
p.setPphone("123456");
p.setMlocation("KNR");
p.setMphone("7890");
p.setMstreet("hk");
s.update(p);
t.commit();
s.close();
t.commit();
s.close();
}
public void getByAll() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Query q=s.createQuery("from Address");
List<Address> Ad =q.list();
for(Address k:Ad) {
System.out.println(k);
}
}
3)One.java
package com.pojo;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class One {
@Id
@GeneratedValue
private int oid;
private String oname;
private String oloc;
@Embedded
private Two to;
public One() {
}
@Override
public String toString() {
return "One [oid=" + oid + ", oname=" + oname + ", oloc=" + oloc
+ ", to=" + to + "]";
}
public One(String oname, String oloc, Two to) {
super();
this.oname = oname;
this.oloc = oloc;
this.to = to;
}
4)Two.java
package com.pojo;
import javax.persistence.Embeddable;
@Embeddable
public class Two {
public Two() {
}
5) TwoClassesIntoSingleTable.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.*;
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
/*List<One> On =p.list();
for(One em: On) {
System.out.println(em);
}*/
List<Object[]> Onead =p.list();
for(Object[] em: Onead) {
System.out.println(em[0]+", "+em[1]+","+em[2]);
}
}
public void updatedata(int oid)
{
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Transaction t = s.beginTransaction();
One p =(One)s.get(One.class, oid);
p.setOname("cherry");
p1.setTloc("Delhi");
p1.setTname("Tina");
p.setTo(p1);
s.update(p);
t.commit();
s.close();
t.commit();
s.close();
}
public void getByAll() {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Query q=s.createQuery("from One");
List<One> o =q.list();
for(One k:o) {
System.out.println(k);
}
}
----------07/02/2024---------------Wednesday--------Class -19---------------------
Topic: Composite Key&Version Concept for knowing the how many times
we updated the record.
Morning
Topic:
What is PrimaryKey?
What is Foreign key?
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
@Entity
public class Product {
@Embedded
@EmbeddedId
private Vendor ve;
private String pname;
private double pprice;
private String ploc;
@Override
public String toString() {
return "Product [ve=" + ve + ", pname=" + pname + ", pprice=" +
pprice + ", ploc=" + ploc + "]";
}
2)Vendor.java
package com.pojo;
import java.io.Serializable;
import javax.persistence.Embeddable;
@Embeddable
public class Vendor implements Serializable{
@Override
public String toString() {
return "Vendor [pid=" + pid + ", vid=" + vid + "]";
}
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
4)CompositeTest.java
package com.controller;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Product;
import com.pojo.Vendor;
public class CompositeTest {
s.save(h);
t.commit();
s.close();
}
s.update(p);
t.commit();
s.close();
for (Product p : d) {
System.out.println(p);
}
}
public static void getByid(int pid, int vid) {
SessionFactory sf = GetSessionFactory.con();
Session s = sf.openSession();
Vendor v = new Vendor();
v.setVid(vid);
v.setPid(pid);
Product p =(Product) s.get(Product.class, v);
System.out.println(p);
s.close();
}
/*package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Product;
import com.pojo.Vendor;
public class CompositeTest {
s.save(h);
t.commit();
s.close();
}
public static Product getByCompositeKey(int pid, int vid) {
SessionFactory sf = GetSessionFactory.con();
Session session = sf.openSession();
Transaction transaction = null;
Product product = null;
try {
transaction = session.beginTransaction();
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
} finally {
session.close();
}
return product;
}
}*/
AFTERNOON
1) AadharCard.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Version;
@Entity
public class AadharCard {
@Id
@GeneratedValue
private Integer aid;
@Override
public String toString() {
return "AadharCard [aid=" + aid + ", anum=" + anum + ",
aname=" + aname + ", aaddress=" + aaddress
+ ", Version=" + Version + "]";
}
@Version
private Long Version;
}
2) AadharTest.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.AadharCard;
public class AadharTest {
public static void savemethod() {
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Transaction t = s.beginTransaction();
AadharCard p = new AadharCard();
p.setAname("lucky");
p.setAnum("75342465");
p.setAaddress("knr");
s.save(p);
t.commit();
s.close();
}
----08/02/2024-------------Thursday------------Class - 20--------------------------
TOPIC: INHERITANCE
SINGLE_TABLE
JOINED
TABLE_PER_CLASS
PROJECT: Hibnerate_Inheritance
PACKAGES:
1)com.pojo
Programs:
a. User.java
b. Customer.java
c. Employee.java
2)com.controller
d. GetSessionFactory.java
e. InheritanceTest.java
@Inheritance(strategy=
InheritanceType.TABLE_PER_CLASS)
a.User.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy= InheritanceType.TABLE_PER_CLASS)
public class User {
@Id
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Employee extends User {
import javax.persistence.Entity;
@Entity
public class Customer extends User {
private String cname;
private String cloc;
}
d.GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.AnnotationConfiguration;
return sf;
}
}
e.InheritanceTest.java
package com.controller;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.*;
public class InheritanceTest {
public static void savemethod() {
SessionFactory sf = GetSessionFactory.con();
Session s =sf.openSession();
Transaction t = s.beginTransaction();
}
public static void main(String[] args) {
InheritanceTest n = new InheritanceTest();
n.savemethod();
}
3cases :
SINGLE_TABLE
JOINED
TABLE_PER_CLASS
OUTPUTS:
Case-1: SINGLE_TABLE
1)
Case-2: JOINED
1)
2)
3)
Case-3: TABLE_PER_CLASS
@Inheritance(strategy=
InheritanceType.TABLE_PER_CLASS)
1)
2)
3)
------------------09-02-2024-----------------FRIDAY--------CLASS-21----------
(morning no class)
(AFTERNOON)
TOPIC:
LAZY LOADING
EAGER LOADING
IMPORTANCE OF FLUSH() METHOD(See down for programs in
detail)
DIFFERENCE BETWEEN FLUSH() AND COMMIT() METHOD
Note: shortcutkey to keep the data in comments CTRL+SHIFT+/
TOPIC-1:
Difference between Lazy loading and Eager loading
https://youtu.be/TejT8H81aVI?si=dNjufMdB65CNzypi
Project: Hibnerate_LazyLoadingAndEagerLoading
Packages:
1)com.pojo
Programs:
a) Person.java
b) Passport.java
c) mobile.java
d) course.java
2)com.controller
e) GetSessionFactory.java
f) All.java
NOTE:
Lazy and Eager Loading are called as Fetching Strategies.
One to One By default it has Eager Loading
Many To One, Many To Many By default they have Lazy Loading
a)Person.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.List;
import javax.persistence.*;
@Entity
public class Person {
@Id
private int pid;
private String pname;
private int page;
private String pqual;
@OneToOne(cascade =CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "fkpid")
private Passport ppt;
}
public Person(int pid, String pname, int page, String pqual, Passport ppt,
List<mobile> mob, List<course> cou) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
this.pqual = pqual;
this.ppt = ppt;
this.mob = mob;
this.cou = cou;
}
/*@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + ", ppt=" + ppt + ", mob="
+ mob + ", cou=" + cou + "]";
}*/
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" +
page + ", pqual=" + pqual + "]";
}
}
b) Passport.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Passport {
@Id
@GeneratedValue
private int ppid;
private String pnum;
private String pexp;
@Override
public String toString() {
return "Passport [ppid=" + ppid + ", pnum=" + pnum + ", pexp="
+ pexp + "]";
}
}
c)mobile.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class mobile {
@Id
@GeneratedValue
private int mid;
private long mnum;
private String msim;
@Override
public String toString() {
return "mobile [mid=" + mid + ", mnum=" + mnum + ", msim=" +
msim + "]";
}
public mobile() {
this.mnum = mnum;
this.msim = msim;
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public long getMnum() {
return mnum;
}
public void setMnum(long mnum) {
this.mnum = mnum;
}
public String getMsim() {
return msim;
}
public void setMsim(String msim) {
this.msim = msim;
}
}
d) course.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class course {
@Id
@GeneratedValue
private Integer cid;
private String cname;
private Double cfee;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Double getCfee() {
return cfee;
}
public void setCfee(Double cfee) {
this.cfee = cfee;
}
public course(Integer cid, String cname, Double cfee) {
super();
this.cid = cid;
this.cname = cname;
this.cfee = cfee;
}
public course() {
}
@Override
public String toString() {
return "course [cid=" + cid + ", cname=" + cname + ", cfee=" +
cfee + "]";
}
}
e) GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
f) All.java
package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.pojo.Passport;
import com.pojo.Person;
import com.pojo.course;
import com.pojo.mobile;
}
public static void main(String[] args) {
p.setMob(mob);
p.setCou(cou);
//t.saveddata(p);
t.getById(1);
}
TOPIC-2:
Project: Hibernate_Flush() Method And Commit() Method
Flush(): In simple words, suppose there are 1lakh records , sending whole 1lakh
records at a time to database, whole records will be in session. So, by using
flush method we will send 10,000 records at a time. Sending 10,000 records at a
time is better than Sending 1 lakh records at a time. Flush method just sinks the
data in to database, but not commit. By this, process becomes easy and fast.
Packages:
1)com.pojo
a) slkstd.java
2)com.controller
b) GetSessionFactory.java
c)Test.java
https://www.javapedia.net/module/Hibernate/Hibernate-interview-
questions-II/1166
Note:
Difference commit() vs flush().
a) flush(): Flushing is the process of synchronizing the underlying
persistent store with persistable state held in memory.it will update
or insert into your tables in the running transaction, but it may not
commit those changes.
a)slkstd.java
package com.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class slkstd {
@Id
@GeneratedValue
private Integer sid;
private String sname;
private Integer sage;
private String squal;
private double smarks;
@Override
public String toString() {
return "slkstd [sid=" + sid + ", sname=" + sname + ", sage=" + sage
+ ", squal=" + squal + ", smarks=" + smarks
+ "]";
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Integer getSage() {
return sage;
}
public void setSage(Integer sage) {
this.sage = sage;
}
public String getSqual() {
return squal;
}
public void setSqual(String squal) {
this.squal = squal;
}
public double getSmarks() {
return smarks;
}
public void setSmarks(double smarks) {
this.smarks = smarks;
}
c) GetSessionFactory.java
package com.controller;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
return sf;
}
}
c)Test.java
package com.controller;
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import java.io.*;
import com.pojo.slkstd;
String[] n = s.split(",");
}
} catch (Exception e) {
e.printStackTrace();
}
return stdd;
SessionFactory s=GetSessionFactory.con();
Session ss= s.openSession();
Transaction t= ss.beginTransaction();
int i=1;
for (slkstd sl : dd) {
System.out.println(sl);
ss.save(sl);
if(i%5==0) {
ss.flush();
}
i++;
}
t.commit();
s.close();
}
-------------10/02/2024-----Saturday----No
Class--------------------------------------------12/02/2024--------Monday------
SPRING STARTED------------------
----------13/02/2024--------Tuesday------Class-22---------------------------------
TOPIC:
AN
FIRST LEVEL CACHE, SECOND LEVEL CACHE, NO PROGRAMS
Sure, let's delve into Hibernate's first-level cache and second-level
cache:
1. *What is it?*
- The first-level cache, also known as the session cache, is associated
with the Hibernate Session object.
- It is enabled by default and exists for the duration of a session.
- It stores the entities (objects) that have been read or written within a
session.
3. *Key Characteristics:*
- *Scope*: Bound to the Hibernate Session object.
- *Lifetime*: Exists only for the duration of the session.
- *Level of Granularity*: Entity-level cache.
1. *What is it?*
- The second-level cache is a shared cache that exists beyond the scope of a
single session.
- It stores data across sessions and can be shared by multiple Session
instances within the same application or across different application
instances.
- It is not enabled by default and requires configuration.
3. *Key Characteristics:*
- *Scope*: Shared across sessions and potentially across different
application instances.
- *Lifetime*: Can be configured to have a longer lifespan than the session
cache.
- *Level of Granularity*: Typically supports entity-level caching, but some
second-level cache providers offer query-level caching as well.
### Configuration:
- *First-Level Cache*: No explicit configuration required; it's managed by
Hibernate automatically.
- *Second-Level Cache*: Requires configuration in Hibernate configuration
files (e.g., hibernate.cfg.xml or application.properties).
In summary, while the first-level cache is bound to the session and manages
entity state within a single session, the second-level cache is shared across
sessions and potentially across application instances, providing broader data
caching capabilities to improve performance.
---------14/02/2024-----------Wednesday-----Class-23---------------------------
TOPIC:
Morning no class
After Noon
Topic:
STORED PROCEDURES IN MYSQL
In procedures
1)insertdata
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertdata`(in pid
int ,in pname varchar(255), in page int, in pqual varchar(255))
BEGIN
insert into sep2024.person values(pid, pname, page, pqual);
END
2)BasedOnIdName
CREATE DEFINER=`root`@`localhost` PROCEDURE
`BasedOnIdName`(in id int, in pname varchar(255))
BEGIN
END
5)checkwhile
CREATE DEFINER=`root`@`localhost` PROCEDURE `checkwhile`(in
maxIterations int)
BEGIN
Output
set @pnames = '0';
set @pages = 0;
call sep2024.GETEmployeeDetails(1, @pnames, @pages);
select @pnames, @pages;
Part-2:
How to call Stored procedures By Hibernate
Afternoon no class
------------16/02/2024------Friday-----------------------Class-25---------------
Topic:
Named Parameters
----------------------17/02/2024----------Saturday-------------Noclass----------
----------------19/02/2024-----------Monday-----------Class-26-----------------