Experiment 2
1. Definition
• JDBC (Java Database Connectivity) is a Java API that allows
Java applications to interact with relational databases.
• It is part of the Java Standard Edition (JSE) and provides a set
of interfaces and classes in the java.sql and javax.sql
packages.
• It acts as a bridge between Java programs and databases like
MySQL, Oracle, PostgreSQL, SQL Server, etc.
In simple words: JDBC is a technology that enables Java programs
to store, update, delete, and fetch data from databases using
SQL queries.
2. Components of JDBC
JDBC mainly consists of 4 key components (often called the JDBC
Architecture):
1. JDBC API
• Set of classes and interfaces in java.sql and javax.sql.
• Provides methods to connect to databases, execute queries,
and retrieve results.
2. JDBC Driver Manager
• Manages a list of database drivers.
• Matches the connection request with the appropriate driver.
3. JDBC Driver
• A software component that translates Java calls into
database-specific calls.
• Each database (MySQL, Oracle, etc.) has its own JDBC driver.
Types of JDBC drivers:
1. Type-1: JDBC-ODBC Bridge Driver
2. Type-2: Native-API Driver
3. Type-3: Network Protocol Driver
4. Type-4: Thin Driver (Pure Java, widely used today e.g., MySQL
Connector/J).
4. Database
• The actual relational database (like MySQL, Oracle,
PostgreSQL, etc.) that stores the data.
3. JDBC Classes and Interfaces
Some commonly used interfaces and classes:
• DriverManager → Manages database drivers.
• Connection → Establishes and maintains session with the
database.
• Statement → Executes static SQL queries.
• PreparedStatement → Executes parameterized queries (safer,
prevents SQL Injection).
• CallableStatement → Executes stored procedures.
• ResultSet → Represents data retrieved from the database (like
a table of rows).
• SQLException → Handles database errors.
4. JDBC Steps (Workflow)
The typical process of JDBC can be broken into 6 steps:
1. Import JDBC packages
import java.sql.*;
2. Load and Register the Driver
Class.forName("com.mysql.cj.jdbc.Driver");
3. Establish a Connection
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3
306/mydb", "user", "password");
4. Create a Statement / PreparedStatement
Statement stmt = con.createStatement();
5. Execute SQL Query
ResultSet rs = stmt.executeQuery("SELECT * FROM
students");
6. Close Connection
con.close();
5. JDBC Methods
Some of the most commonly used methods in JDBC are:
DriverManager
• getConnection(url, user, password) → Establish
connection.
Connection
• createStatement() → Create a Statement object.
• prepareStatement(sql) → Create a PreparedStatement
object.
• close() → Close the connection.
Statement
• executeQuery(sql) → Executes SELECT queries (returns
ResultSet).
• executeUpdate(sql) → Executes INSERT, UPDATE, DELETE
(returns number of affected rows).
• close() → Closes the statement.
PreparedStatement
• setInt(index, value) → Sets integer parameter.
• setString(index, value) → Sets string parameter.
• executeQuery() → Executes query.
• executeUpdate() → Executes update.
ResultSet
• next() → Moves to the next row.
• getInt(column) → Retrieves integer data.
• getString(column) → Retrieves string data.
• close() → Closes the ResultSet.
6. Advantages of JDBC
• Database independence (same code can work with different
databases by changing driver).
• Provides a standardized API.
• Supports both static and dynamic SQL queries.
• Portable and platform-independent.
EXPERIMENT 2
Q. Database connectivity through Java (JDBC) show table
PS C:\Users\karti\Onedrive\Desktop\ad java> javac -cp ".;C:\mysql-connector\mysql-connector-j-9.4.0.jar" "Jdbc.java"
PS C:\Users\karti\Onedrive\Desktop\ad java> java -cp ".;C:\mysql-connector\mysql-connector-j-9.4.0.jar" Jdbc
? Connected to database successfully!
Name ID PhoneNo
Kartik 411 2345
Kuldeep 412 567
Prashant 432 908
PS C:\Users\karti\Onedrive\Desktop\ad java>
EXPERIMENT 3
Q.implement the client –server connection and establish communication
between them
1 import java.net.*;
2 import java.io.*;
3
4 public class Client {
Run | Debug
5 public static void main(String[] args) throws IOException
6 String serverIP = "127.0.0.1";
7 int port = 3000;
8
9 System.out.println("Client started. Connecting to server at serverIP port ");
10 Socket socket Socket(serverIP, port);
= new
11 System.out.println(x: "Connected to server.");
12
13 BufferedReader userInput = new BufferedReader(new InputStreamReader (System.in));
14 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
15 PrintWriter out = new PrintWriter(socket.getOutputStream(), autoFlush:true);
16
17 String msg; {
18 while (true)
19 System.out.print(s:"Enter message for server (type 'close' to quit): ");
20 msg = userInput.readLine();
21 if (msg null) break; // EOF
== from console
22
23 out.println(msg); // send to server
24 System.out.println(x: "Message sent. Waiting for server response...");
25
26 String response = in.readLine();
27 if (response null) {
==
28
System.out.println(x: "Server closed connection.");
29 break;
30
31 System.out.println("Received from server: " + response);
32
33 if ("close".equalsIgnoreCase(msg.trim())) {
34 System.out.println(x:"Closing client as requested.");
35 break;
36
37 }
38
39
in.close();
40 out.close();
41 socket.close();
42 System.out.println(x:"Client closed.");
43
44
C:\Users\karti\OneDrive\Desktop\ad java>java Server. java
Server started. Waiting for client on port 3000...
Client connected: /127.0.0.1
Received from client: kartik
Received from client: maheshwari
Received from client: close
Client requested close. Closing connection.
Response sent to client.
Server closed.
C:\Users\karti\OneDrive\Desktop\ad java>
C:\Users\karti\OneDrive\Desktop\ad java>java Client
Client started. Connecting to server at 127.0.0.1:3000...
Connected to server.
Enter message for server (type 'close' to quit): kartik
Message sent. Waiting for server response...
Received from server: Server received: kartik
Enter message for server (type 'close' to quit): maheshwari
Message sent. Waiting for server response...
Received from server: Server received: maheshwari
Enter message for server (type 'close' to quit): close
Message sent. Waiting for server response...
Received from server: Server: closing connection as requested.
Closing client as requested.
Client closed.
C:\Users\karti\OneDrive\Desktop\ad java>
C:\Users\karti\OneDrive\Desktop\ad java>java Client
Client started. Connecting to server at 127.0.0.1:3000...
Connected to server.
Enter message for server (type 'close' to quit): kartik
Message sent. Waiting for server response...
Received from server: Server received: kartik
Enter message for server (type 'close' to quit): maheshwari
Message sent. Waiting for server response...
Received from server: Server received: maheshwari
Enter message for server (type 'close' to quit): close
Message sent. Waiting for server response...
Received from server: Server: closing connection as requested.
Closing client as requested.
Client closed.
C:\Users\karti\OneDrive\Desktop\ad java>