JDBC –
Java DataBase Connectivity
Introduction
Database
Collection of data
DBMS
Database management system
Storing and organizing data
SQL
Relational database
Structured Query Language
JDBC
Java Database Connectivity
JDBC driver
JDBC
Programs developed with Java/JDBC are
platform and vendor independent.
“write once, compile once, run anywhere”
Write apps in java to access any DB, using
standard SQL statements – while still
following Java conventions.
JDBC driver manager and JDBC drivers
provide the bridge between the database and
java worlds.
General Architecture
What design pattern is
implied in this
architecture?
What does it buy for us?
Why is this architecture
also multi-tiered?
4
ODBC
JDBC heavily influenced by ODBC
ODBC provides a C interface for database
access on Windows environment.
ODBC has a few commands with lots of
complex options. Java prefers simple
methods but lots of them.
Type 1 3rd Party API
Database
Type 3 Type 2 Native C/C++ API
Local API
Network API
Type 4
• Type 1: Uses a bridging technology to access a database. JDBC-
ODBC bridge is an example. It provides a gateway to the ODBC.
• Type 2: Native API drivers. Driver contains Java code that calls
native C/C++ methods provided by the database vendors.
• Type 3: Generic network API that is then translated into database-
specific access at the server level. The JDBC driver on the client uses
sockets to call a middleware application on the server that translates
the client requests into an API specific to the desired driver. Extremely
flexible.
• Type 4: Using network protocols built into the database engine talk
directly to the database using Java sockets. Almost always comes
only from database vendors.
Basic steps to use
a database in Java
1.Establisha connection
2.Create JDBC Statements
3.Execute SQL Statements
4.GET ResultSet
5.Close connections
7
1. Establish a connection
import java.sql.*;
Load the vendor specific driver
Class.forName("oracle.jdbc.driver.OracleDriver");
Whatdo you think this statement does, and how?
Dynamically loads a driver class, for Oracle database
Make the connection
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@oracle-prod:1521:OPROD",
username, passwd);
What do you think this statement does?
Establishes connection to database by obtaining
a Connection object
8
2. Create JDBC statement(s)
Statement stmt =
con.createStatement() ;
Creates a Statement object for sending SQL statements
to the database
9
Executing SQL Statements
String createLehigh = "Create table Lehigh
"+
"(SSN Integer not null, Name
VARCHAR(32), " + "Marks Integer)";
stmt.executeUpdate(createLehigh);
//What does this statement do?
String insertLehigh = "Insert into Lehigh
values“ + "(123456789,abc,100)";
stmt.executeUpdate(insertLehigh);
10
Get ResultSet
String queryLehigh = "select * from Lehigh";
ResultSet rs =
Stmt.executeQuery(queryLehigh);
//What does this statement do?
while (rs.next()) {
int ssn = rs.getInt("SSN");
String name = rs.getString("NAME");
int marks = rs.getInt("MARKS"); 11
Close connection
stmt.close();
con.close();
12