0% found this document useful (0 votes)
3 views94 pages

Java OOP Concepts and Examples

The document covers various Java programming concepts including method overloading, method overriding, inheritance types, abstract classes, exception handling, multithreading, synchronization, JDBC, servlets, file handling, request dispatching, and session management. Each section provides code examples demonstrating the respective concepts. The document serves as a comprehensive guide for understanding core Java features and their implementations.

Uploaded by

uibuvanesh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views94 pages

Java OOP Concepts and Examples

The document covers various Java programming concepts including method overloading, method overriding, inheritance types, abstract classes, exception handling, multithreading, synchronization, JDBC, servlets, file handling, request dispatching, and session management. Each section provides code examples demonstrating the respective concepts. The document serves as a comprehensive guide for understanding core Java features and their implementations.

Uploaded by

uibuvanesh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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:

You might also like