Skip to content

Commit 513928b

Browse files
committed
update
1 parent 99fda8d commit 513928b

9 files changed

Lines changed: 332 additions & 16 deletions

File tree

IMAGES/collection.png

194 KB
Loading

IMAGES/jdbcarch.jpg

298 KB
Loading

IMAGES/onedarray.png

4.7 KB
Loading

IMAGES/twodarray.jpg

12.3 KB
Loading

advanced-java/collections/index.md

Lines changed: 72 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,74 @@
1-
# Module 1: Arrays
1+
# Java Collections Framework
22

3-
In this module, you'll learn about Arrays in Java.
3+
The **Java Collections Framework (JCF)** is a set of classes and interfaces that implement commonly used collection data structures. It provides a standard way to handle and organize data in Java, allowing for efficient storage, retrieval, and manipulation of data.
44

5-
## Topics Covered:
6-
- Array Declaration
7-
- Array Initialization
8-
- Multi-dimensional Arrays
5+
## Table of Contents
6+
1. [Overview](#overview)
7+
2. [Collection Interfaces](#collection-interfaces)
8+
3. [Common Implementations](#common-implementations)
9+
4. [List Interface](#list-interface)
10+
5. [Set Interface](#set-interface)
11+
6. [Queue Interface](#queue-interface)
12+
7. [Map Interface](#map-interface)
13+
8. [Iterators](#iterators)
14+
9. [Collections Utility Class](#collections-utility-class)
15+
10. [Advanced Concepts](#advanced-concepts)
16+
17+
## Overview
18+
19+
The **Java Collections Framework** (JCF) includes interfaces, implementations, and algorithms for working with collections of objects. It provides high-level abstractions and implementations for different types of collections such as lists, sets, and maps.
20+
21+
### Key Components of the Collections Framework:
22+
- **Interfaces**: Define common behavior for different collection types.
23+
- **Implementations**: Concrete classes that implement the collection interfaces.
24+
- **Algorithms**: Methods that operate on collections, such as sorting and searching.
25+
26+
<br/>
27+
<div align="center" width=700 height=200>
28+
<img src="IMAGES/collection.png" class="execution" alt="exception hierarchy">
29+
</div><br/>
30+
31+
## Collection Interfaces
32+
33+
The core interfaces of the Java Collections Framework are:
34+
35+
- **Collection**: The root interface for all collections. It defines basic operations like adding, removing, and checking for elements.
36+
- **List**: Extends Collection. It represents an ordered collection that allows duplicates and provides indexed access to elements.
37+
- **Set**: Extends Collection. It represents a collection of unique elements with no duplicates.
38+
- **Queue**: Extends Collection. It represents a collection used to hold elements prior to processing.
39+
- **Deque**: Extends Queue. It represents a double-ended queue where elements can be added or removed from both ends.
40+
- **Map**: Not a true collection. It represents a collection of key-value pairs, with unique keys.
41+
42+
## Common Implementations
43+
44+
- **ArrayList**: Implements the List interface using a dynamic array. Provides fast random access to elements.
45+
- **LinkedList**: Implements both List and Queue interfaces using a doubly linked list.
46+
- **HashSet**: Implements the Set interface using a hash table. It provides constant time performance for basic operations.
47+
- **TreeSet**: Implements Set using a Red-Black tree. It maintains elements in sorted order.
48+
- **HashMap**: Implements the Map interface using a hash table.
49+
- **TreeMap**: Implements Map using a Red-Black tree. It maintains keys in sorted order.
50+
- **PriorityQueue**: Implements Queue using a priority heap. It provides efficient retrieval of the highest-priority element.
51+
52+
## List Interface
53+
54+
The **List** interface is an ordered collection that allows duplicate elements. It has several key methods:
55+
56+
- `add(E e)`: Adds an element to the list.
57+
- `get(int index)`: Retrieves an element by its index.
58+
- `remove(int index)`: Removes the element at the specified index.
59+
- `set(int index, E element)`: Replaces the element at the specified index.
60+
- `indexOf(Object o)`: Returns the index of the first occurrence of the specified element.
61+
- `size()`: Returns the size of the list.
62+
63+
### Common Implementations:
64+
- **ArrayList**: Provides constant-time random access to elements. It is backed by an array.
65+
- **LinkedList**: Implements both the List and Queue interfaces. It provides better performance for adding and removing elements at the ends of the list.
66+
67+
### Example:
68+
69+
```java
70+
List<String> list = new ArrayList<>();
71+
list.add("Apple");
72+
list.add("Banana");
73+
list.add("Cherry");
74+
System.out.println(list.get(0)); // Output: Apple

advanced-java/jdbc/index.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

advanced-java/jdbcodbc/index.md

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
# ☕ JDBC Full Guide: Java Database Connectivity (with MySQL)
2+
---
3+
4+
JDBC (Java Database Connectivity) is an API that enables Java programs to connect to databases like MySQL, Oracle, PostgreSQL, etc., execute SQL queries, and retrieve results.
5+
6+
<br/>
7+
8+
## 📌 JDBC Architecture
9+
10+
<br/>
11+
<div align="center" width=700 height=200>
12+
<img src="IMAGES/jdbcarch.jpg" class="execution" alt="exception hierarchy">
13+
</div><br/>
14+
15+
<br/>
16+
17+
## 🔗 Steps to Connect Java with MySQL Database
18+
19+
### 1️⃣ Import Packages
20+
<br/>
21+
<div class="code-block">
22+
<pre><code>
23+
<span class="keyword">import</span> java.sql.Connection<span class="punctuation">;</span>
24+
<span class="keyword">import</span> java.sql.DriverManager<span class="punctuation">;</span>
25+
<span class="keyword">import</span> java.sql.ResultSet<span class="punctuation">;</span>
26+
<span class="keyword">import</span> java.sql.Statement<span class="punctuation">;</span>
27+
<span class="keyword">import</span> java.sql.PreparedStatement<span class="punctuation">;</span>
28+
<span class="keyword">import</span> java.sql.SQLException<span class="punctuation">;</span>
29+
</code></pre>
30+
</div>
31+
32+
These are all part of the `java.sql` package.
33+
34+
<br/>
35+
36+
### 2️⃣ Register JDBC Driver
37+
<br/>
38+
<div class="code-block">
39+
<pre><code>
40+
<span class="classname">Class</span><span class="punctuation">.</span><span class="method">forName</span><span class="punctuation">(</span><span class="string">"com.mysql.cj.jdbc.Driver"</span><span class="punctuation">)</span><span class="punctuation">;</span>
41+
</code></pre>
42+
</div>
43+
44+
This loads the MySQL JDBC driver.
45+
46+
<br/>
47+
48+
### 3️⃣ Establish Connection
49+
<br/>
50+
<div class="code-block">
51+
<pre><code>
52+
<span class="keyword">String</span> <span class="variable">url</span> = <span class="string">"jdbc:mysql://localhost:3306/mydatabase"</span><span class="punctuation">;</span> <span class="comment">// 3306 is MySQL default port</span>
53+
<span class="keyword">String</span> <span class="variable">user</span> = <span class="string">"root"</span><span class="punctuation">;</span>
54+
<span class="keyword">String</span> <span class="variable">password</span> = <span class="string">"your_password"</span><span class="punctuation">;</span>
55+
56+
<span class="classname">Connection</span> <span class="variable">conn</span> = <span class="classname">DriverManager</span><span class="punctuation">.</span><span class="method">getConnection</span><span class="punctuation">(</span><span class="variable">url</span>, <span class="variable">user</span>, <span class="variable">password</span><span class="punctuation">)</span><span class="punctuation">;</span>
57+
</code></pre>
58+
</div>
59+
60+
- `localhost`: the host
61+
- `3306`: the MySQL port
62+
- `mydatabase`: your database name
63+
64+
<br/>
65+
66+
### 4️⃣ Create Statement
67+
<br/>
68+
<div class="code-block">
69+
<pre><code>
70+
<span class="classname">Statement</span> <span class="variable">stmt</span> = <span class="variable">conn</span><span class="punctuation">.</span><span class="method">createStatement</span><span class="punctuation">();</span>
71+
</code></pre>
72+
</div>
73+
74+
75+
You can also use:
76+
<div class="code-block">
77+
<pre><code>
78+
<span class="classname">PreparedStatement</span> <span class="variable">pstmt</span> = <span class="variable">conn</span><span class="punctuation">.</span><span class="method">prepareStatement</span><span class="punctuation">(</span><span class="string">"INSERT INTO users VALUES (?, ?)"</span><span class="punctuation">);</span>
79+
</code></pre>
80+
</div>
81+
82+
83+
<br/>
84+
85+
### 5️⃣ Execute Queries
86+
<br/>
87+
88+
#### SELECT Example:
89+
<br/>
90+
<div class="code-block">
91+
<pre><code>
92+
<span class="classname">ResultSet</span> <span class="variable">rs</span> = <span class="variable">stmt</span><span class="punctuation">.</span><span class="method">executeQuery</span><span class="punctuation">(</span><span class="string">"SELECT * FROM users"</span><span class="punctuation">);</span>
93+
<span class="keyword">while</span> (<span class="variable">rs</span><span class="punctuation">.</span><span class="method">next</span><span class="punctuation">())</span> <span class="punctuation">{</span>
94+
<span class="method">System.out.println</span><span class="punctuation">(</span><span class="variable">rs</span><span class="punctuation">.</span><span class="method">getString</span><span class="punctuation">(</span><span class="string">"username"</span><span class="punctuation">)</span><span class="punctuation">);</span>
95+
<span class="punctuation">}</span>
96+
</code></pre>
97+
</div>
98+
99+
#### INSERT Example:
100+
101+
<br/>
102+
<div class="code-block">
103+
<pre><code>
104+
<span class="keyword">String</span> <span class="variable">query</span> = <span class="string">"INSERT INTO users (username, password) VALUES (?, ?)"</span><span class="punctuation">;</span>
105+
<span class="classname">PreparedStatement</span> <span class="variable">pstmt</span> = <span class="variable">conn</span><span class="punctuation">.</span><span class="method">prepareStatement</span><span class="punctuation">(</span><span class="variable">query</span><span class="punctuation">)</span><span class="punctuation">;</span>
106+
<span class="variable">pstmt</span><span class="punctuation">.</span><span class="method">setString</span><span class="punctuation">(</span><span class="number">1</span>, <span class="string">"john"</span><span class="punctuation">)</span><span class="punctuation">;</span>
107+
<span class="variable">pstmt</span><span class="punctuation">.</span><span class="method">setString</span><span class="punctuation">(</span><span class="number">2</span>, <span class="string">"secret"</span><span class="punctuation">)</span><span class="punctuation">;</span>
108+
<span class="variable">pstmt</span><span class="punctuation">.</span><span class="method">executeUpdate</span><span class="punctuation">()</span><span class="punctuation">;</span>
109+
</code></pre>
110+
</div>
111+
112+
113+
<br/>
114+
115+
### 6️⃣ Close Resources
116+
<br/>
117+
<div class="code-block">
118+
<pre><code>
119+
<span class="variable">rs</span><span class="punctuation">.</span><span class="method">close</span><span class="punctuation">()</span><span class="punctuation">;</span>
120+
<span class="variable">stmt</span><span class="punctuation">.</span><span class="method">close</span><span class="punctuation">()</span><span class="punctuation">;</span>
121+
<span class="variable">conn</span><span class="punctuation">.</span><span class="method">close</span><span class="punctuation">()</span><span class="punctuation">;</span>
122+
</code></pre>
123+
</div>
124+
125+
126+
Always close connections to avoid memory leaks.
127+
128+
<br/>
129+
130+
## 🧱 JDBC Connection URL Format
131+
<br/>
132+
133+
<div class="code-block">
134+
<pre><code>
135+
<span class="string">jdbc:mysql://</span><span class="variable">&lt;host&gt;</span><span class="punctuation">:</span><span class="variable">&lt;port&gt;</span><span class="punctuation">/</span><span class="variable">&lt;database&gt;</span><span class="punctuation">?</span><span class="variable">&lt;options&gt;</span>
136+
</code></pre>
137+
</div>
138+
139+
140+
Example:
141+
<br/>
142+
<div class="code-block">
143+
<pre><code>
144+
<span class="string">jdbc:mysql://</span><span class="variable">localhost</span><span class="punctuation">:</span><span class="number">3306</span><span class="punctuation">/</span><span class="variable">school</span><span class="punctuation">?</span><span class="keyword">useSSL</span><span class="punctuation">=</span><span class="boolean">false</span><span class="punctuation">&amp;</span><span class="keyword">serverTimezone</span><span class="punctuation">=</span><span class="string">UTC</span>
145+
</code></pre>
146+
</div>
147+
148+
149+
<br/>
150+
151+
## ⚙️ JDBC MySQL Driver Dependency (Maven)
152+
<br/>
153+
154+
```xml
155+
<dependency>
156+
<groupId>mysql</groupId>
157+
<artifactId>mysql-connector-java</artifactId>
158+
<version>8.0.33</version>
159+
</dependency>
160+
```
161+
162+
If using manually, download `mysql-connector-java.jar` and add it to your classpath.
163+
164+
<br/>
165+
166+
## 📦 Key JDBC Classes and Interfaces
167+
<br/>
168+
169+
| Class / Interface | Purpose |
170+
|-------------------------|------------------------------------------------|
171+
| DriverManager | Manages JDBC drivers and connections |
172+
| Connection | Represents DB connection |
173+
| Statement | Executes static SQL |
174+
| PreparedStatement | Executes dynamic SQL with parameters |
175+
| ResultSet | Holds data from SELECT |
176+
| SQLException | Handles JDBC exceptions |
177+
178+
<br/>
179+
180+
## 🚫 Exception Handling in JDBC
181+
<br/>
182+
183+
<div class="code-block">
184+
<pre><code>
185+
<span class="keyword">try</span> <span class="punctuation">{</span>
186+
<span class="comment">// operations</span>
187+
<span class="keyword">Connection</span> <span class="variable">conn</span> = <span class="method">DriverManager.getConnection</span>(<span class="variable">url</span>, <span class="variable">user</span>, <span class="variable">pass</span><span class="punctuation">);</span>
188+
<span class="punctuation">}</span> <span class="keyword">catch</span> (<span class="keyword">SQLException</span> <span class="variable">e</span>) <span class="punctuation">{</span>
189+
<span class="method">e.printStackTrace</span><span class="punctuation">();</span>
190+
<span class="punctuation">}</span>
191+
</code></pre>
192+
</div>
193+
194+
195+
<br/>
196+
197+
## 📘 Sample JDBC Program
198+
<br/>
199+
<div class="code-block">
200+
<pre><code>
201+
<span class="keyword">import</span> <span class="package">java.sql.*;</span>
202+
203+
<span class="keyword">public</span> <span class="keyword">class</span> <span class="classname">JDBCExample</span> <span class="punctuation">{</span>
204+
<span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="method">main</span>(<span class="keyword">String</span>[] <span class="variable">args</span>) <span class="punctuation">{</span>
205+
<span class="keyword">String</span> <span class="variable">url</span> = <span class="string">"jdbc:mysql://localhost:3306/testdb"</span>;
206+
<span class="keyword">String</span> <span class="variable">user</span> = <span class="string">"root"</span>;
207+
<span class="keyword">String</span> <span class="variable">password</span> = <span class="string">"password"</span>;
208+
<span class="keyword">try</span> <span class="punctuation">{</span>
209+
<span class="keyword">Class</span>.forName(<span class="string">"com.mysql.cj.jdbc.Driver"</span>);
210+
<span class="keyword">Connection</span> <span class="variable">conn</span> = <span class="method">DriverManager.getConnection</span>(<span class="variable">url</span>, <span class="variable">user</span>, <span class="variable">password</span><span class="punctuation">);</span>
211+
<span class="keyword">Statement</span> <span class="variable">stmt</span> = <span class="variable">conn</span>.<span class="method">createStatement</span><span class="punctuation">();</span>
212+
<span class="keyword">ResultSet</span> <span class="variable">rs</span> = <span class="variable">stmt</span>.<span class="method">executeQuery</span>(<span class="string">"SELECT * FROM students"</span>);
213+
<span class="keyword">while</span> (<span class="variable">rs</span>.<span class="method">next</span>()) <span class="punctuation">{</span>
214+
<span class="method">System.out.println</span>(<span class="variable">rs</span>.<span class="method">getInt</span>(<span class="string">"id"</span>) + <span class="string">" "</span> + <span class="variable">rs</span>.<span class="method">getString</span>(<span class="string">"name"</span>));
215+
<span class="punctuation">}</span>
216+
<span class="variable">rs</span>.<span class="method">close</span><span class="punctuation">();</span>
217+
<span class="variable">stmt</span>.<span class="method">close</span><span class="punctuation">();</span>
218+
<span class="variable">conn</span>.<span class="method">close</span><span class="punctuation">();</span>
219+
<span class="keyword">} catch</span> (<span class="keyword">Exception</span> <span class="variable">e</span>) <span class="punctuation">{</span>
220+
<span class="method">e.printStackTrace</span><span class="punctuation">();</span>
221+
<span class="punctuation">}</span>
222+
<span class="punctuation">}</span>
223+
<span class="punctuation">}</span>
224+
</code></pre>
225+
</div>
226+
227+
228+
<br/>
229+
230+
## 🛠️ Common JDBC Ports
231+
<br/>
232+
233+
| Database | Default Port |
234+
|--------------|--------------|
235+
| MySQL | 3306 |
236+
| PostgreSQL | 5432 |
237+
| Oracle DB | 1521 |
238+
| SQL Server | 1433 |
239+
240+
241+
242+
## 📎 Tips
243+
244+
- Always close ResultSet, Statement, and Connection.
245+
- Use `PreparedStatement` to avoid SQL injection.
246+
- Use try-with-resources for cleaner code.
247+
- Handle exceptions gracefully.
248+
249+
250+
**Happy Coding ☕**

core-java/arrays-collections/index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
</ul>
1414

1515
<h3>One-Dimensional Arrays</h3>
16+
<br/>
17+
<div align="center" width=700 height=200>
18+
<img src="IMAGES/onedarray.png" class="execution" alt="exception hierarchy">
19+
</div><br/>
1620
<p>A one-dimensional array stores a sequence of elements of the same type. It's the simplest type of array in Java.</p>
1721

1822
<h4>Example of One-Dimensional Array:</h4><br>
@@ -30,6 +34,10 @@
3034
<br>
3135

3236
<h3>Multi-Dimensional Arrays</h3>
37+
<br/>
38+
<div align="center" width=700 height=200>
39+
<img src="IMAGES/twodarray.jpg" class="execution" alt="exception hierarchy">
40+
</div><br/>
3341
<p>Multi-dimensional arrays are arrays of arrays, like a matrix or table of data.</p>
3442

3543
<h4>Example of Multi-Dimensional Array:</h4><br>

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ <h3>Beginner ---> Advance </h3>
126126
>
127127
</li>
128128
<li>
129-
<a href="#advanced-java/jdbc" onclick="loadContent('advanced-java/jdbc/')"
130-
>🗄️ JDBC</a
129+
<a href="#advanced-java/jdbcodbc" onclick="loadContent('advanced-java/jdbcodbc/')"
130+
>🗄️ JDBC/ODBC</a
131131
>
132132
</li>
133133
<li>

0 commit comments

Comments
 (0)