SlideShare a Scribd company logo
Introduction to JDBC
Michelle Lee, Ye Wu & Jeff Offutt
http://www.cs.gmu.edu/~offutt/
SWE 432
Design and Implementation of Software for the Web
5/24/2023 © Wu, Lee & Offutt 2
JDBC
• JDBC (Java Database Connectivity) API allows Java
programs to connect to databases
• Database access is the same for all database vendors
• The JVM uses a JDBC driver to translate generalized
JDBC calls into vendor specific database calls
• There are four general types of JDBC drivers
– We will look at Type 4 …
5/24/2023 © Wu, Lee & Offutt 3
Pure Java Driver (Type 4)
• These drivers convert the JDBC API calls to direct
network calls using vendor-specific networking protocols
by making direct socket connections with the database
• It is the most efficient method to access database, both in
performance and development time
• It is the simplest to deploy
• All major database vendors provide pure Java JDBC
drivers for their databases and they are also available from
third party vendors
• For a list of JDBC drivers, refer to
– http://industry.java.sun.com/products/jdbc/drivers
5/24/2023 © Wu, Lee & Offutt 4
Java
Application
DB Client
Pure Java Driver (2)
JDBC
API
JDBC Driver
Data Source
Server
5/24/2023 © Wu, Lee & Offutt 5
Typical JDBC Programming Procedure
1. Load the database driver
2. Obtain a connection
3. Create and execute statements (SQL queries)
4. Use result sets (tables) to navigate through the results
5. Close the connection
5/24/2023 © Wu, Lee & Offutt 6
Driver Manager
• The purpose of the java.sql.DriverManger class in
JDBC is to provide a common access layer on top of
different database drivers used in an application
• DriverManager requires that each driver required by the
application must be registered before use, so that the
DriverManager is aware of it
• Load the database driver using ClassLoader :
– Class.forName (“oracle.jdbc.driver.OracleDriver”);
5/24/2023 © Wu, Lee & Offutt 7
Connecting to a Database
• Type 4 JDBC Driver – Oracle Server
Class.forName (“oracle.jdbc.driver.OracleDriver”);
con = DriverManager.getConnection (
“jdbc:oracle:thin:@bonsai.ite.gmu.edu:1521:ite”,
“accountname", “password”);
• Type 4 JDBC Driver – MySQL Server
Class.forName (“org.gjt.mm.mysql.Driver”);
con = DriverManager.getConnection
(“jdbc:mysql://localhost/databasename”, uid, passwd);
5/24/2023 © Wu, Lee & Offutt 8
Creating Tables
• Creating a Coffee table
CREATE TABLE COFFEES (COF_NAME VARCHAR(32), SUP_ID
INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER)
• Creating JDBC statements
Statement stmt = con.createStatement ();
• Execute a statement
stmt.executeUpdate (“CREATE TABLE COFFEES “ +
“(COF_NAME VARCHAR(32), SUP_ID INTEGER,
PRICE FLOAT, “ + “SALES INTEGER, TOTAL
INTEGER)”);
SQL query
5/24/2023 © Wu, Lee & Offutt 9
Execute Statements
• This uses executeUpdate because the SQL statement
contained in createTableCoffees is a DDL (data
definition language) statement
• Statements that create a table, alter a table, or drop a table
are all examples of DDL statements and are executed with
the method executeUpdate
• executeUpdate is also used to execute SQL statements
that update a table
5/24/2023 © Wu, Lee & Offutt 10
Execute Statements
• In practice, executeUpdate is used far more often to
update tables than it is to create them because a table is
created once but may be updated many times
• The method used most often for executing SQL statements
is executeQuery
• executeQuery is used to execute SELECT statements,
which comprise the vast majority of SQL statements
5/24/2023 © Wu, Lee & Offutt 11
Entering Data into a Table
Statement stmt = con.createStatement();
stmt.executeUpdate ( "INSERT INTO COFFEES " +
"VALUES ('Colombian', 101, 7.99, 0, 0)");
stmt.executeUpdate ( "INSERT INTO COFFEES " +
"VALUES ('French_Roast', 49, 8.99, 0, 0)" );
stmt.executeUpdate ( "INSERT INTO COFFEES " +
"VALUES ('Espresso', 150, 9.99, 0, 0)" );
stmt.executeUpdate ( "INSERT INTO COFFEES " +
"VALUES ('Colombian_Decaf', 101, 8.99, 0, 0)" );
stmt.executeUpdate ( "INSERT INTO COFFEES " +
"VALUES ('French_Roast_Decaf', 49, 9.99, 0, 0)" );
5/24/2023 © Wu, Lee & Offutt 12
Getting Data From a Table
ResultSet rs = stmt.executeQuery ("SELECT COF_NAME, PRICE
FROM COFFEES");
while (rs.next())
{
String s = rs.getString ("COF_NAME");
float n = rs.getFloat ("PRICE");
System.out.println (s + " " + n);
}
5/24/2023 © Wu, Lee & Offutt 13
JNDI
Connection Manager
JDBC Data Source Architecture
Application JDBC Database
5/24/2023 © Wu, Lee & Offutt 14
Sample code
• Sun JDBC tutorial

More Related Content

PPT
JDBC.ppt database connectivity in java ppt
PPT
java database connectivity drivers tutorial
PPTX
JDBC ppt
PDF
Unit 5.pdf
PPTX
java 4 Part 1 computer science.pptx
PPTX
1. java database connectivity (jdbc)
PPT
Chap3 3 12
PDF
10 J D B C
JDBC.ppt database connectivity in java ppt
java database connectivity drivers tutorial
JDBC ppt
Unit 5.pdf
java 4 Part 1 computer science.pptx
1. java database connectivity (jdbc)
Chap3 3 12
10 J D B C

Similar to JDBC.ppt (20)

PPT
JDBC.ppt
PDF
4_59788783hhhhhhhhhhhhhhhhhhhhhhhhhhhhh34715564451.pdf
PPT
PPTX
PPTX
Jdbc in servlets
PPT
Basic Java Database Connectivity(JDBC)
PDF
JavaFX Enterprise (JavaOne 2014)
PPT
Jdbc connectivity
PPTX
Weblogic 101 for dba
PPTX
Java Database Connectivity (JDBC)
PPTX
java.pptx
PDF
Introduction to Java Database Connectivity (JDBC)
PPT
Java database connectivity
PPT
Java database connectivity
PPTX
BI, Integration, and Apps on Couchbase using Simba ODBC and JDBC
PPT
JDBC.ppt
PPTX
AJppt.pptx
PDF
A to z for sql azure databases
JDBC.ppt
4_59788783hhhhhhhhhhhhhhhhhhhhhhhhhhhhh34715564451.pdf
Jdbc in servlets
Basic Java Database Connectivity(JDBC)
JavaFX Enterprise (JavaOne 2014)
Jdbc connectivity
Weblogic 101 for dba
Java Database Connectivity (JDBC)
java.pptx
Introduction to Java Database Connectivity (JDBC)
Java database connectivity
Java database connectivity
BI, Integration, and Apps on Couchbase using Simba ODBC and JDBC
JDBC.ppt
AJppt.pptx
A to z for sql azure databases
Ad

Recently uploaded (20)

PDF
Classroom Observation Tools for Teachers
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Pharma ospi slides which help in ospi learning
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Cell Structure & Organelles in detailed.
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Cell Types and Its function , kingdom of life
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
master seminar digital applications in india
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Classroom Observation Tools for Teachers
VCE English Exam - Section C Student Revision Booklet
Pharma ospi slides which help in ospi learning
FourierSeries-QuestionsWithAnswers(Part-A).pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Computing-Curriculum for Schools in Ghana
Cell Structure & Organelles in detailed.
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
RMMM.pdf make it easy to upload and study
Final Presentation General Medicine 03-08-2024.pptx
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Cell Types and Its function , kingdom of life
Anesthesia in Laparoscopic Surgery in India
GDM (1) (1).pptx small presentation for students
Microbial disease of the cardiovascular and lymphatic systems
master seminar digital applications in india
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Ad

JDBC.ppt

  • 1. Introduction to JDBC Michelle Lee, Ye Wu & Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the Web
  • 2. 5/24/2023 © Wu, Lee & Offutt 2 JDBC • JDBC (Java Database Connectivity) API allows Java programs to connect to databases • Database access is the same for all database vendors • The JVM uses a JDBC driver to translate generalized JDBC calls into vendor specific database calls • There are four general types of JDBC drivers – We will look at Type 4 …
  • 3. 5/24/2023 © Wu, Lee & Offutt 3 Pure Java Driver (Type 4) • These drivers convert the JDBC API calls to direct network calls using vendor-specific networking protocols by making direct socket connections with the database • It is the most efficient method to access database, both in performance and development time • It is the simplest to deploy • All major database vendors provide pure Java JDBC drivers for their databases and they are also available from third party vendors • For a list of JDBC drivers, refer to – http://industry.java.sun.com/products/jdbc/drivers
  • 4. 5/24/2023 © Wu, Lee & Offutt 4 Java Application DB Client Pure Java Driver (2) JDBC API JDBC Driver Data Source Server
  • 5. 5/24/2023 © Wu, Lee & Offutt 5 Typical JDBC Programming Procedure 1. Load the database driver 2. Obtain a connection 3. Create and execute statements (SQL queries) 4. Use result sets (tables) to navigate through the results 5. Close the connection
  • 6. 5/24/2023 © Wu, Lee & Offutt 6 Driver Manager • The purpose of the java.sql.DriverManger class in JDBC is to provide a common access layer on top of different database drivers used in an application • DriverManager requires that each driver required by the application must be registered before use, so that the DriverManager is aware of it • Load the database driver using ClassLoader : – Class.forName (“oracle.jdbc.driver.OracleDriver”);
  • 7. 5/24/2023 © Wu, Lee & Offutt 7 Connecting to a Database • Type 4 JDBC Driver – Oracle Server Class.forName (“oracle.jdbc.driver.OracleDriver”); con = DriverManager.getConnection ( “jdbc:oracle:thin:@bonsai.ite.gmu.edu:1521:ite”, “accountname", “password”); • Type 4 JDBC Driver – MySQL Server Class.forName (“org.gjt.mm.mysql.Driver”); con = DriverManager.getConnection (“jdbc:mysql://localhost/databasename”, uid, passwd);
  • 8. 5/24/2023 © Wu, Lee & Offutt 8 Creating Tables • Creating a Coffee table CREATE TABLE COFFEES (COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER) • Creating JDBC statements Statement stmt = con.createStatement (); • Execute a statement stmt.executeUpdate (“CREATE TABLE COFFEES “ + “(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, “ + “SALES INTEGER, TOTAL INTEGER)”); SQL query
  • 9. 5/24/2023 © Wu, Lee & Offutt 9 Execute Statements • This uses executeUpdate because the SQL statement contained in createTableCoffees is a DDL (data definition language) statement • Statements that create a table, alter a table, or drop a table are all examples of DDL statements and are executed with the method executeUpdate • executeUpdate is also used to execute SQL statements that update a table
  • 10. 5/24/2023 © Wu, Lee & Offutt 10 Execute Statements • In practice, executeUpdate is used far more often to update tables than it is to create them because a table is created once but may be updated many times • The method used most often for executing SQL statements is executeQuery • executeQuery is used to execute SELECT statements, which comprise the vast majority of SQL statements
  • 11. 5/24/2023 © Wu, Lee & Offutt 11 Entering Data into a Table Statement stmt = con.createStatement(); stmt.executeUpdate ( "INSERT INTO COFFEES " + "VALUES ('Colombian', 101, 7.99, 0, 0)"); stmt.executeUpdate ( "INSERT INTO COFFEES " + "VALUES ('French_Roast', 49, 8.99, 0, 0)" ); stmt.executeUpdate ( "INSERT INTO COFFEES " + "VALUES ('Espresso', 150, 9.99, 0, 0)" ); stmt.executeUpdate ( "INSERT INTO COFFEES " + "VALUES ('Colombian_Decaf', 101, 8.99, 0, 0)" ); stmt.executeUpdate ( "INSERT INTO COFFEES " + "VALUES ('French_Roast_Decaf', 49, 9.99, 0, 0)" );
  • 12. 5/24/2023 © Wu, Lee & Offutt 12 Getting Data From a Table ResultSet rs = stmt.executeQuery ("SELECT COF_NAME, PRICE FROM COFFEES"); while (rs.next()) { String s = rs.getString ("COF_NAME"); float n = rs.getFloat ("PRICE"); System.out.println (s + " " + n); }
  • 13. 5/24/2023 © Wu, Lee & Offutt 13 JNDI Connection Manager JDBC Data Source Architecture Application JDBC Database
  • 14. 5/24/2023 © Wu, Lee & Offutt 14 Sample code • Sun JDBC tutorial