Hibernate CRUD Operation Example:
pom.xml
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.28.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency>Teacher.java
package com.deepsingh44.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Teacher {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Dao.java
package com.deepsingh44.dao;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import com.deepsingh44.model.Teacher;
public class Dao {
private static StandardServiceRegistry ssr =
new StandardServiceRegistryBuilder()
.configure("hibernate.cfg.xml")
.build();
private static Metadata meta = new MetadataSources(ssr)
.addAnnotatedClass(Teacher.class)
.getMetadataBuilder()
.build();
private static SessionFactory sf = meta.
getSessionFactoryBuilder().
build();
public static SessionFactory getSessionFactory() {
return sf;
}
}
TeacherDao.java
package com.deepsingh44.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import com.deepsingh44.model.Teacher;
public class TeacherDao {
private static TeacherDao teacherDao = new TeacherDao();
public static TeacherDao getTeacherDao() {
return teacherDao;
}
private TeacherDao() {
}
public int insert(Teacher teacher) {
int i = 0;
Session session = Dao.getSessionFactory().openSession();
i = (Integer) session.save(teacher);
session.beginTransaction().commit();
session.close();
return i;
}
public int delete(Teacher teacher) {
int i = 0;
Session session = Dao.getSessionFactory().openSession();
session.delete(teacher);
session.beginTransaction().commit();
session.close();
return i = 1;
}
public int update(Teacher teacher) {
int i = 0;
Session session = Dao.getSessionFactory().openSession();
session.update(teacher);
session.beginTransaction().commit();
session.close();
return i = 1;
}
public Teacher fetchTeacher(int id) {
Teacher teacher = null;
Session session = Dao.getSessionFactory().openSession();
teacher = session.get(Teacher.class, id);
session.close();
return teacher;
}
public List<Teacher> fetchAllTeacher() {
Session session = Dao.getSessionFactory().openSession();
@SuppressWarnings("deprecation")
Criteria cr = session.createCriteria(Teacher.class);
List<Teacher> ll = cr.list();
return ll;
}
}
Test.java
package com.deepsingh44.test;
import java.util.List;
import java.util.Scanner;
import com.deepsingh44.dao.TeacherDao;
import com.deepsingh44.model.Teacher;
public class Test {
public void insert(Teacher teacher) {
int id = TeacherDao.getTeacherDao().insert(teacher);
System.out.println((id > 0) ?
"Successfully Inserted " + id : "Insertion Failed");
}
public void delete(int id) {
Teacher teacher = fetchById(id);
if (teacher != null) {
System.out.println(
(TeacherDao.getTeacherDao().delete(teacher) > 0)
? "Successfully deleted" : "Deleted failed");
} else {
System.out.println("This id is not exist");
}
}
public void update(Teacher teacher) {
System.out.println(TeacherDao.getTeacherDao().update(teacher) > 0 ?
"Successfully Update" : "Update Failed");
}
public Teacher fetchById(int id) {
return TeacherDao.getTeacherDao().fetchTeacher(id);
}
public void fetchAll() {
List<Teacher> teachers = TeacherDao.getTeacherDao().
fetchAllTeacher();
for (Teacher t : teachers) {
System.out.println(t.getId() + "\t" + t.getName() +
"\t" + t.getAddress());
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Test t = new Test();
String confirm = "", name = "", address = "";
int id = 0;
do {
System.out.println("press 1 for insert Teacher");
System.out.println("press 2 for delete Teacher");
System.out.println("press 3 for update Teacher");
System.out.println("press 4 for fetchById Teacher");
System.out.println("press 5 for fetchAll Teachers");
System.out.println("press 6 for exit");
System.out.println("Enter your choice : ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("Enter teacher name");
name = scanner.next();
System.out.println("Enter teacher address");
address = scanner.next();
Teacher teacher = new Teacher();
teacher.setName(name);
teacher.setAddress(address);
t.insert(teacher);
break;
case 2:
System.out.println("Enter teacher id");
id = scanner.nextInt();
t.delete(id);
break;
case 3:
System.out.println("Enter teacher id");
id = scanner.nextInt();
System.out.println("Enter teacher name");
name = scanner.next();
System.out.println("Enter teacher address");
address = scanner.next();
Teacher tt = t.fetchById(id);
if (tt != null) {
t.update(tt);
} else {
System.out.println("this id is not exist");
}
break;
case 4:
System.out.println("Enter teacher id");
id = scanner.nextInt();
Teacher ttt = t.fetchById(id);
if (ttt != null) {
System.out.println(ttt.getName() + "\t" + ttt.getAddress());
} else {
System.out.println("this id is not exist");
}
break;
case 5:
t.fetchAll();
break;
case 6:
System.exit(0);
break;
default:
System.out.println("Wrong choice");
}
System.out.println("Do you want to continue(y/n)");
confirm = scanner.next();
} while (confirm.equalsIgnoreCase("y"));
}
}
hibernate.cfg.xml
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 5.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-5.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com...Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://.../stds</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
No comments:
Post a Comment