DEV Community

Cover image for Advanced java concept
Aman Verma
Aman Verma

Posted on

Advanced java concept

====================================================

JDBC – SERVLET – JSP NOTES

🔷 1. JDBC – ResultSet Interface

• ResultSet is an interface from java.sql package.
• Represents data returned by SQL SELECT query.
• Used for:
- Retrieving data
- Navigating rows
- Manipulating data

🔹 Creating ResultSet

Using Statement:

Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("SELECT * FROM emp");

Using PreparedStatement:

PreparedStatement ps = con.prepareStatement("SELECT * FROM emp");
ResultSet rs = ps.executeQuery();

🔷 2. Types of ResultSet

1) TYPE_FORWARD_ONLY (Default)
• Move only forward
• Cannot move backward
• Cannot jump to specific row

2) TYPE_SCROLL_INSENSITIVE
• Move forward & backward
• Jump to any row
• Does NOT reflect DB changes

3) TYPE_SCROLL_SENSITIVE
• Move forward & backward
• Reflects DB changes

🔷 3. Concurrency Mode

ResultSet.CONCUR_READ_ONLY
• Cannot update data

ResultSet.CONCUR_UPDATABLE
• Can update data

🔷 4. Important ResultSet Methods

next() → Move to next row
previous() → Move to previous row
first() → Move to first row
last() → Move to last row
beforeFirst() → Before first row
afterLast() → After last row
absolute(int) → Move to specific row
relative(int) → Move relative position

🔷 5. RowSet

• Child interface of ResultSet
• Supports Connected & Disconnected mode

Types:

JdbcRowSet
CachedRowSet
WebRowSet
FilteredRowSet
JoinRowSet

🔷 6. RowSetFactory

RowSetFactory rsf = RowSetProvider.newFactory();
CachedRowSet crs = rsf.createCachedRowSet();

🔷 7. CallableStatement (Stored Procedure)

• Used to execute:
- Stored Procedures
- Functions

CallableStatement cs =
con.prepareCall("{call proc_name(?)}");

Register OUT Parameter:

cs.registerOutParameter(1, Types.INTEGER);

Procedure vs Function

Procedure:
• No return value
• IN, OUT, INOUT
• Used for operations

Function:
• Returns value
• Only IN
• Used for calculations

🔷 8. Transaction Management

Transaction = Group of operations executed together

Steps:

1) Disable AutoCommit
con.setAutoCommit(false);

2) Execute Queries

3) Commit OR Rollback
con.commit();
con.rollback();

🔷 ACID Properties

Atomicity → All or nothing
Consistency → DB remains valid
Isolation → Transactions isolated
Durability → Changes permanent

🔷 9. Savepoint

Savepoint sp = con.setSavepoint();
con.rollback(sp);

🔷 10. Connection Pooling

• Improves performance
• Reuses DB connections
• Avoids repeated creation/destruction

🔷 11. JDBC Metadata

1) DatabaseMetaData

DatabaseMetaData dbmd = con.getMetaData();
dbmd.getDatabaseProductName();
dbmd.getDriverName();

2) ParameterMetaData

ParameterMetaData pmd = ps.getParameterMetaData();
pmd.getParameterCount();

3) ResultSetMetaData

ResultSetMetaData rsmd = rs.getMetaData();
rsmd.getColumnCount();
rsmd.getColumnName(1);

====================================================

SERVLET

🔷 12. What is Servlet?

• Java program running on server
• Handles HTTP requests
• Generates dynamic response

🔷 Servlet Life Cycle

1) init()
2) service()
3) destroy()

🔷 Servlet Interface Methods

public void init()
public void service()
public void destroy()
public ServletConfig getServletConfig()
public String getServletInfo()

🔷 13. Creating Servlet (3 Ways)

1) Implement Servlet
2) Extend GenericServlet
3) Extend HttpServlet (Most Used)

HttpServlet Methods:

doGet()
doPost()

🔷 14. RequestDispatcher

Used for:
• forward()
• include()

RequestDispatcher rd =
request.getRequestDispatcher("page.jsp");

rd.forward(request, response);

====================================================

JSP

🔷 15. JSP Scripting Tags

Scriptlet:

<% code %>

Expression:

<%= value %>

Declaration:

<%! int x = 10; %>

🔷 Directive Tags

Page:
<%@ page contentType="text/html" %>

Include:
<%@ include file="header.jsp" %>

Taglib:
<%@ taglib ... %>

🔷 Action Tag

====================================================

MVC ARCHITECTURE

🔷 16. MVC Components

Model:
• JavaBeans
• DAO
• Database

View:
• JSP
• HTML

Controller:
• Servlet

Flow:

HTML → Servlet → Bean → DAO → Database
Servlet → JSP (Display Result)

🔷 17. JavaBeans Rules

• Must implement Serializable
• Private variables
• Public getter & setter
• Public default constructor

🔷 18. Attributes in Servlet

request.setAttribute("name", value);
request.getAttribute("name");
request.removeAttribute("name");

🔷 19. GET vs POST

GET:
• Data in URL
• Less secure
• Limited size
• Used for retrieval

POST:
• Data in body
• More secure
• Large data allowed
• Used for submission

🔷 20. Session Tracking

Methods:
• Cookies
• HttpSession
• URL Rewriting
• Hidden Fields

🔷 21. Cookie Class

Cookie c = new Cookie("name","value");
c.setMaxAge(60);
response.addCookie(c);

Important Methods:
getName()
getValue()
setValue()
setMaxAge()
getMaxAge()

🔷 22. HttpSession

HttpSession session = request.getSession();
session.setAttribute("user", value);
session.getAttribute("user");
session.invalidate();

🔷 23. Web Server vs Application Server

Web Server:
• Handles HTTP
• Example: Tomcat

Application Server:
• Handles Web + Enterprise
• Example: WebLogic

====================================================

🔥 FINAL REVISION SUMMARY

✔ JDBC
✔ ResultSet
✔ RowSet
✔ CallableStatement
✔ Transactions
✔ ACID
✔ Metadata
✔ Servlet
✔ JSP
✔ MVC
✔ JavaBeans
✔ Session
✔ Cookies

Top comments (0)