METHOD OVERLOADING
public class Calculator {
int add(int a, int b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
double add(double a, double b) {
return a + b; }
public static void main(String[] args) {
Calculator c = new Calculator();
[Link]([Link](5, 10));
[Link]([Link](1, 2, 3));
[Link]([Link](2.5, 3.7));
}
}
OUTPUT:
METHOD OVERRIDING
class Vehicle {
void start() {
[Link]("Vehicle is starting");
}
}
class Car extends Vehicle {
@Override
void start() {
[Link]("Car is starting with a key");
}
}
public class MethodOverridingDemo {
public static void main(String[] args) {
Vehicle v = new Vehicle();
[Link]();
Car c = new Car();
[Link]();
}
}
OUTPUT:
MUTLI-LEVEL INHERITANCE
class Vehicle {
void start() {
[Link]("Vehicle starts");
}
}
class Car extends Vehicle {
void drive() {
[Link]("Car is being driven");
}
}
class SportsCar extends Car {
void turbo() {
[Link]("SportsCar turbo mode activated");
}
}
public class Test {
public static void main(String[] args) {
SportsCar sc = new SportsCar();
[Link]();
[Link]();
[Link]();
}
}
OUTPUT:
MULTIPLE INHERITANCE
interface Flyable {
void fly();
}
interface Drivable {
void drive();
}
class FlyingCar implements Flyable, Drivable {
@Override
public void fly() {
[Link]("Flying car is flying in the sky!");
}
@Override
public void drive() {
[Link]("Flying car is driving on the road!");
}
}
public class VehicleDemo {
public static void main(String[] args) {
FlyingCar fc = new FlyingCar();
[Link]();
[Link]();
}
}
OUTPUT:
HIERARCHICAL INHERITANCE
class Person {
void display() {
[Link]("I am a Person");
}
}
class Student extends Person {
void study() {
[Link]("I am a Student");
}
}
class Teacher extends Person {
void teach() {
[Link]("I am a Teacher");
}
}
public class Main {
public static void main(String[] args) {
Student s = new Student();
Teacher t = new Teacher();
[Link]();
[Link]();
[Link]();
[Link]();
}
}
OUTPUT:
ABSTRACT CLASS
abstract class Shape {
abstract double area();
}
class Circle extends Shape {
double radius;
Circle(double radius) {
[Link] = radius;
}
double area() {
return [Link] * radius * radius; }
}
class Rectangle extends Shape {
double length, width;
Rectangle(double length, double width) {
[Link] = length;
[Link] = width;
}
double area() { return length * width; }
}
public class Main {
public static void main(String[] args) {
Shape c = new Circle(5);
Shape r = new Rectangle(4, 6);
[Link]("Circle Area: " + [Link]());
[Link]("Rectangle Area: " + [Link]());
}
}
OUTPUT:
EXCEPTIONAL HANDLING
class NegativeNumberException extends Exception{
public NegativeNumberException(String msg){
super(msg);
}
}
public class NumberValidator{
public static void checkNumber(int n)throws NegativeNumberException{
[Link]("Checking number:"+n);
if(n<0){
throw new NegativeNumberException("Error:Negative numbers are not allowed!");
}
[Link]("Valid number:"+n);
}
public static void main(String[] args){
int value=-5;
try{
checkNumber(value);
}
catch(NegativeNumberException e){
[Link]("Exception Caught:"+[Link]());
}
finally{
[Link]("Program Finished.");
}
}
}
OUTPUT:
MULTITHREADING
class MyRunnable implements Runnable
private String name;
MyRunnable(String name)
[Link]=name;
public void run()
for(int i=1;i<=5;i++)
[Link](name+":"+i);
try
[Link](500);
catch(InterruptedException e)
[Link](name+"interupted");
[Link](name+"finished");
public static void main(String args[])
{
Runnable r1=new MyRunnable("Thread-1");
Runnable r2=new MyRunnable("Thread-2");
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
[Link]();
[Link]();
[Link]("Main thread finished");
}
OUTPUT:
THREAD PRIORITIES
class MyThread extends Thread {
public MyThread(String name) {
super(name); }
public void run() {
for (int i = 1; i <= 3; i++) {
[Link](getName() + ":" + i); }
}
public static void main(String args[]) {
MyThread t1 = new MyThread("Thread-1");
MyThread t2 = new MyThread("Thread-2");
MyThread t3 = new MyThread("Thread-3");
[Link]("Before setPriority");
[Link]("Thread-1 priority:" + [Link]());
[Link]("Thread-2 priority:" + [Link]());
[Link]("Thread-3 priority:" + [Link]());
[Link](Thread.MIN_PRIORITY);
[Link](Thread.NORM_PRIORITY);
[Link](Thread.MAX_PRIORITY);
[Link]("After setPriority");
[Link]("Thread-1 priority:" + [Link]());
[Link]("Thread-2 priority:" + [Link]());
[Link]("Thread-3 priority:" + [Link]());
[Link]();
[Link]();
[Link]();
}
}
OUTPUT:
SYNCHRONIZATION
class Printer {
synchronized void printUsingMethod() {
[Link]([Link]().getName() + " is in synchronized METHOD");
}
void printUsingBlock() {
synchronized(this) {
[Link]([Link]().getName() + " is in synchronized BLOCK");
}
}
}
public class SyncPrinterDemo {
public static void main(String[] args) {
Printer p = new Printer();
Thread t1 = new Thread(() -> {
[Link]();
[Link]();
}, "T1");
Thread t2 = new Thread(() -> {
[Link]();
[Link]();
}, "T2");
[Link]();
[Link]();
}
}
OUTPUT:
JAVA DATABASE CONNECTIVITY
import [Link].*;
public class DBExample {
public static void main(String[] args) {
Connection connection = null;
try {
// Load MySQL JDBC driver
[Link]("[Link]");
// Establish connection
connection = [Link](
"jdbc:mysql://localhost:3306/test", "root", "");
// Create statement
Statement statement = [Link]();
// Execute query
ResultSet resultSet = [Link]("SELECT * FROM emp");
while ([Link]()) {
int empid= [Link]("empid");
String name= [Link]("name").trim();
int age= [Link]("age");
[Link]("Emp ID: " + empid + " | Name: " + name +" | Age: " + age);
}
[Link]();
[Link]();
[Link]();
}
catch (Exception e) {
[Link](e);
}
}
}
OUTPUT:
SERVLET AND DATABASE
Steps and Structure:
Step 1: Download and Install Apache Tomcat Server (32bit/64bit Windows service Installer)
Step 2: Open Netbeans->New Project->Java with Ant-> Java Web->Web Application
[Link]
<!DOCTYPE html>
<html>
<head>
<title>MyServlet</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="MyServlet" method="get">
Emp Id : <input type="text" name="empid"/>
Emp Name : <input type="text" name="name"/>
Age : <input type="text" name="age"/>
<input type="submit" name="submit" />
</form>
</body>
</html>
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html;charset=UTF-8");
PrintWriter out = [Link]();
Connection con=null;
Statement statement=null;
String name,age,empid;
empid = [Link]("empid");
name = [Link]("name");
age = [Link]("age");
try{
[Link]("[Link]");
con = [Link]("jdbc:mysql://localhost:3306/test", "root", "");
statement = [Link]();
int rows = [Link]("INSERT INTO emp(empid,name, age)
VALUES('"+empid+"','"+name+"','"+age+"')");
[Link]("<h4>"+rows+" Rows Inserted Successfully</h4>");
[Link]();
[Link]();
} catch (Exception e) {
[Link](e);
}
}
}
OUTPUT:
FILE HANDLING USING SERVLET
Steps and Structure:
[Link]
<!DOCTYPE html>
<html>
<head>
<title>File Handling using Servlet</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h2>Upload a File</h2>
<form method="post" action="FileServlet" enctype="multipart/form-data">
<input type="file" name="file" required>
<br><br>
<input type="submit" value="Upload">
</form>
</body>
</html>
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@MultipartConfig
@WebServlet(name = "FileServlet", urlPatterns = {"/FileServlet"})
public class FileServlet extends HttpServlet {
private static final String UPLOAD_DIR = "uploads";
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String fileName = [Link]("name");
if (fileName == null || [Link]()) {
[Link]().println("Missing file name!");
return;
}
String filePath = getServletContext().getRealPath("") + [Link] + UPLOAD_DIR +
[Link] + fileName;
File file = new File(filePath);
if (![Link]()) {
[Link]().println("File not found!");
return;
}
[Link]("application/octet-stream"); // unknown binary file
[Link]("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
try (FileInputStream in = new FileInputStream(file);
OutputStream out = [Link]()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {
[Link](buffer, 0, bytesRead); }
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Part filePart = [Link]("file");
String fileName = [Link]();
String uploadPath = getServletContext().getRealPath("") + [Link] + UPLOAD_DIR;
File uploadDir = new File(uploadPath);
if (![Link]()) [Link]();
try (InputStream input = [Link]();
FileOutputStream output = new FileOutputStream(uploadPath + [Link] +
fileName)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {
[Link](buffer, 0, bytesRead); }
}
[Link]("text/html;charset=UTF-8");
[Link]().println("<h3>File uploaded successfully: " + fileName + "</h3>");
[Link]().println("<a href='FileServlet?name=" + fileName + "'>Download File</a>");
}
}
OUTPUT:
REQUEST DISPATCHER USING SERVLET
Steps and Structure:
[Link]
<!DOCTYPE html>
<html>
<head>
<title>Dispatcher Servlet Login Page</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>Dispatcher Servlet Login Page</h1>
<form action="LoginServlet" method="post">
User Name : <input type="text" name="uname"/>
Password : <input type="password" name="pass"/>
<input type="submit" name="submit" />
</form>
</body>
</html>
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@WebServlet(name = "LoginServlet", urlPatterns = {"/LoginServlet"})
public class LoginServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html;charset=UTF-8");
try (PrintWriter out = [Link]()) {
[Link]("<!DOCTYPE html>");
[Link]("<html>");
[Link]("<head>");
[Link]("<title>Servlet LoginServlet</title>");
[Link]("</head>");
[Link]("<body>");
String uname = [Link]("uname");
String pass = [Link]("pass");
if([Link]("admin") && [Link]("servlet"))
{
RequestDispatcher rd= [Link]("WelcomeServlet");
[Link](request, response);
}
else
{
[Link]("<h1 style='color:red; '>Login Failed</h1>");
RequestDispatcher rd= [Link]("[Link]");
[Link](request, response);
}
[Link]("</body>");
[Link]("</html>");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@WebServlet(name = "WelcomeServlet", urlPatterns = {"/WelcomeServlet"})
public class WelcomeServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html;charset=UTF-8");
try (PrintWriter out = [Link]()) {
[Link]("<!DOCTYPE html>");
[Link]("<html>");
[Link]("<head>");
[Link]("<title>Servlet WelcomeServlet</title>");
[Link]("</head>");
[Link]("<body>");
[Link]("<h1>Welcome to Dispatcher Servlet Success page</h1>");
[Link]("</body>");
[Link]("</html>");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
OUTPUT:
SESSION MANAGEMENT SERVLET
Steps and Structure:
[Link]
<!DOCTYPE html>
<html>
<head>
<title>Session Management servlet</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>Session Management</h1>
<form action="LoginServlet" method="post">
User Name : <input type="text" name="uname"/>
Password : <input type="password" name="pass"/>
<input type="submit" name="submit" />
</form>
</body>
</html>
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class LoginServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html;charset=UTF-8");
PrintWriter out = [Link]();
String user = [Link]("uname");
String pass = [Link]("pass");
if ("admin".equals(user) && "1234".equals(pass)) {
HttpSession session = [Link]();
[Link]("username", user);
[Link]("<h2>Welcome, " + user + "</h2>");
[Link]("<a href='Welcome'>Go to Welcome Page</a>");
}
else
{
[Link]("<h3>Invalid username or password</h3>");
}
[Link]();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
}
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@WebServlet(name = "Welcome", urlPatterns = {"/Welcome"})
public class Welcome extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html");
PrintWriter out = [Link]();
HttpSession session = [Link](false);
if (session != null) {
String user = (String) [Link]("username");
if (user != null) {
[Link]("<h2>Welcome page</h2>");
[Link]("<p>Welcome " + user + "!</p>");
[Link]("<a href='LogoutServlet'>Logout</a>");
}
else
{
[Link]("<h3>No active session found.</h3>");
}
}
else
{
[Link]("<h3>Please login first.</h3>");
}
[Link]();
}
}
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@WebServlet(name = "LogoutServlet", urlPatterns = {"/LogoutServlet"})
public class LogoutServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
[Link]("text/html;charset=UTF-8");
try (PrintWriter out = [Link]()) {
[Link]("<!DOCTYPE html>");
[Link]("<html>");
[Link]("<head>");
[Link]("<title>Servlet LogoutServlet</title>");
[Link]("</head>");
[Link]("<body>");
HttpSession session = [Link]();
[Link]();
[Link]("<h1>Session Destroyed Successfully</h1>");
[Link]("</body>");
[Link]("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
}
OUTPUT:
RESPONSIVE UI FORM USING BOOTSTRAP
Steps and Structure:
[Link]
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Responsive Form</title>
<link href="[Link]
rel="stylesheet">
<script src="[Link]
</script>
</head>
<body class="bg-light">
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow-lg p-4 rounded-4">
<%String name = [Link]("name");
String email = [Link]("email");
String password = [Link]("password");
String gender = [Link]("gender");
if (name == null) {%>
<h3 class="text-center mb-4">Registration Form</h3>
<form method="post">
<div class="mb-3">
<label class="form-label">Full Name</label>
<input type="text" name="name" class="form-control" required>
</div>
<div class="mb-3">
<label class="form-label">Email</label>
<input type="email" name="email" class="form-control" required>
</div>
<div class="mb-3">
<label class="form-label">Password</label>
<input type="password" name="password" class="form-control" required>
</div>
<div class="mb-3">
<label class="form-label">Gender</label>
<select class="form-select" name="gender">
<option>Male</option>
<option>Female</option>
<option>Other</option>
</select>
</div>
<div class="d-grid">
<button type="submit" class="btn btn-primary btn-lg rounded-3">
Submit </button>
</div>
</form>
<%} else {%>
<h2 class="text-center mb-4 text-success">
<%= name %> registered successfully
</h2>
<div class="d-grid mt-4">
<a href="[Link]" class="btn btn-secondary">Go Back</a>
</div>
<%}%>
</div>
</div>
</div>
</div>
</body>
</html>
OUTPUT:
DYNAMIC WEB APP USING JSP, EL, JSTL
Steps and Structure:
[Link]
package mypack;
public class Student {
private int id;
private String name;
private double marks;
public Student(int id, String name, double marks) {
[Link] = id;
[Link] = name;
[Link] = marks;
}
public int getId(){
return id;
}
public String getName(){
return name;
}
public double getMarks(){
return marks;
}
}
[Link]
package mypack;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
public class StudentServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Student> students = new ArrayList <> ();
[Link](new Student(1, "Anbu", 88.5));
[Link](new Student(2, "Babu", 72.0));
[Link](new Student(3, "Charlie", 91.2));
[Link]("studentList", students);
RequestDispatcher rd = [Link]("[Link]");
[Link](request, response);
}
}
[Link]
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="6.0" xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link] [Link]
app_6_0.xsd">
<servlet>
<servlet-name>Student</servlet-name>
<servlet-class>[Link]</servlet-class>
</servlet>
<servlet>
<servlet-name>StudentServlet</servlet-name>
<servlet-class>[Link]</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Student</servlet-name>
<url-pattern>/Student</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>StudentServlet</servlet-name>
<url-pattern>/StudentServlet</url-pattern>
</servlet-mapping>
</web-app>
[Link]
<%@ page import="[Link].*" %>
<%@ taglib uri="[Link] prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>Student List</title>
</head>
<body>
<%String className = "Master of Computer Applications";%>
<h2>Welcome to <%= className %> Class</h2>
<hr/>
<h3>Student Details:</h3>
<table border="1" cellpadding="5">
<tr> <th>ID</th> <th>Name</th> <th>Marks</th> <th>Status</th> </tr>
<c:forEach var="s" items="${studentList}">
<tr>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>${[Link]}</td>
<td>
<c:choose>
<c:when test="${[Link] >= 75}">
<span style="color:green;">Pass</span>
</c:when>
<c:otherwise>
<span style="color:red;">Fail</span>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
OUTPUT:
SPRING MVC AND SPRING BOOT
Steps and Structure:
[Link]
<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>spring_boot</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>spring_boot-1.0</name>
<properties>
<[Link]>21</[Link]>
<[Link]>3.3.5</[Link]>
</properties>
<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>10.1.25</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>[Link]-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>[Link]-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>[Link]</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>[Link]</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${[Link]}</version>
</plugin>
<plugin>
<groupId>[Link]</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
[Link] (src/main/java/com/example/demo)
package [Link];
import [Link];
import [Link];
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args){
[Link]([Link],args);
}
}
[Link] (src/main/java/com/example/demo)
package [Link];
import [Link];
import [Link];
@Controller
public class HomeController {
@GetMapping("/")
public String indexs(){
return "indexs";
}
@GetMapping("/home")
public String home(){ return "home"; }
}
[Link] (src/main/resources)
[Link]=8070
[Link]=/WEB-INF/views/
[Link]=.jsp
[Link] (src/main/webapp/WEB-INF/views)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Spring MVC and Spring Boot</title>
</head>
<body>
<h1>Home Page</h1>
<h3>Welcome to Home Page</h3>
</body>
</html>
[Link] (src/main/webapps/WEB-INF/views)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Spring MVC and Spring Boot</title>
</head>
<body>
<h1>Index Page</h1>
<a href="home">click to home page</a>
</body>
</html>
OUTPUT:
HIBERNATE AND JPA
Steps and Structure:
[Link]
<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>HibernateStudentCRUD</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>hibernate-core</artifactId>
<version>[Link]</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>[Link]-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.12</version>
</dependency>
</dependencies>
</project>
[Link] (src/main/resources)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE alias PUBLIC "-//Hibernate Configuration DTD 3.0//EN"
"[Link]
<hibernate-configuration>
<session-factory>
<property name="[Link].driver_class">[Link]</property>
<property name="[Link]">
jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1
</property>
<property name="[Link]" >sa</property>
<property name="[Link]"></property>
<property name="[Link]">[Link].H2Dialect</property>
<property name="[Link]">update</property>
<property name="hibernate.show_sql">true</property>
<mapping class="[Link]"/>
</session-factory>
</hibernate-configuration>
[Link] ( src/main/java/com/example)
package [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
StudentDAO dao = new StudentDAO();
// CREATE
[Link]("Saving students...");
[Link](new Student("Alice", 20));
[Link](new Student("Bob", 22));
// READ ALL
[Link]("\nAll Students:");
[Link]().forEach([Link]::println);
// READ ONE
[Link]("\nFind Student with ID 1:");
Student s = [Link](1L);
[Link](s);
// UPDATE
[Link]("\nUpdating student...");
[Link](25);
[Link](s);
[Link]([Link](1L));
// DELETE
[Link]("\nDeleting student with ID 2...");
[Link](2L);
// READ ALL AGAIN
[Link]("\nAll Students After Delete:");
[Link]().forEach([Link]::println);
}
}
[Link] (src/main/java/com/example/entity)
package [Link];
import [Link].*;
@Entity
@Table(name="students")
public class Student {
@Id
@GeneratedValue(strategy=[Link])
private Long id;
@Column(nullable=false)
private String name;
@Column
private int age;
public Student(){}
public Student(String name,int age){
[Link]=name;
[Link]=age;
}
public Long getId(){
return id;
}
public String getName(){
return name;
}
public void setName(String name){
[Link]=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
[Link]=age;
}
@Override
public String toString(){
return "Student{"+"id="+id+",name='"+name+"',age=”+age+’}’;
}
}
[Link] (src/main/java/com/example/util)
package [Link];
import [Link];
import [Link];
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static{
try{
sessionFactory=new Configuration().configure().buildSessionFactory();
}catch(Exception ex){
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
[Link] (src/main/java/com/example/dao)
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class StudentDAO {
public void saveStudent(Student student) {
Transaction transaction = null;
try (Session session = [Link]().openSession()) {
transaction = [Link]();
[Link](student);
[Link]();
} catch (Exception e) {
if (transaction != null) [Link]();
[Link]();
}
}
public Student getStudent(Long id) {
try (Session session = [Link]().openSession()) {
return [Link]([Link], id);
}
}
public List<Student> getAllStudents() {
try (Session session = [Link]().openSession()) {
return [Link](“from Student”, [Link]).list();
}
}
public void updateStudent(Student student) {
Transaction transaction = null;
try (Session session = [Link]().openSession()) {
transaction = [Link]();
[Link](student);
[Link]();
} catch (Exception e) {
if (transaction != null) [Link]();
}
}
public void deleteStudent(Long id) {
Transaction transaction = null;
try (Session session = [Link]().openSession()) {
Student student = [Link]([Link], id);
if (student != null) {
transaction = [Link]();
[Link](student);
[Link]();
}
} catch (Exception e) {
if (transaction != null) [Link]();
}
}
}
OUTPUT:
SPRING WITH HIBERNATE
Steps and Structure:
[Link]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link] [Link]
[Link]">
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>Spring_with_Hibernate</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-context</artifactId>
<version>6.1.3</version>
</dependency>
<!-- <dependency>
<groupId>[Link]</groupId>
<artifactId>spring-tx</artifactId>
<version>6.1.2</version>
</dependency> -->
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-orm</artifactId>
<version>6.1.3</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>hibernate-core</artifactId>
<version>[Link]</version>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.12</version>
</dependency>
</dependencies>
</project>
[Link] (src/main/resources)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="[Link]
xmlns:xsi="[Link]
xmlns:context="[Link]
xmlns:tx="[Link]
xsi:schemaLocation="
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
<context:component-scan base-package="[Link]"/>
<bean id="dataSource" class="[Link]">
<property name="driverClassName" value="[Link]"/>
<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<bean id="sessionFactory"
class="[Link]">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="[Link]"/>
<property name="hibernateProperties">
<props>
<prop key="[Link]">[Link]</prop>
<prop key="[Link]">update</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="[Link]">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
[Link] (src/main/java/com/example/entity)
package [Link];
import [Link].*;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = [Link])
private Long id;
@Column(nullable = false)
private String name;
@Column
private int age;
public User() {}
public User(String name, int age) {
[Link] = name;
[Link] = age;
}
public Long getId(){
return id;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public void setName(String name) { [Link] = name; }
public void setAge(int age) { [Link] = age; }
}
[Link] (src/main/java/com/example/dao)
package [Link];
import [Link];
import [Link];
public interface UserDAO {
void save(User user);
List<User> listUsers();
}
[Link] (src/main/java/com/example/dao)
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@Repository
@Transactional
public class UserDAOImpl implements UserDAO {
private final SessionFactory sessionFactory;
public UserDAOImpl(SessionFactory sessionFactory) {
[Link] = sessionFactory;
}
private Session getSession() {
return [Link]();
}
@Override
public void save(User user) {
getSession().persist(user);
}
@Override
public List<User> listUsers() {
return getSession().createQuery("from User", [Link]).list();
}
}
[Link] (src/main/java/com/example)
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("[Link]");
UserDAO dao = [Link]([Link]);
[Link](new User("Alice", 22));
[Link](new User("Bob",24));
[Link]().forEach(u ->
[Link]([Link]() + " | " + [Link]()+" | " + [Link]()));
}
}
OUTPUT: