SlideShare a Scribd company logo
JDBC
(Java Database Connectivity)
Overview (1/2)
 JDBC
 JDBC is a standard interface for connecting to relational databases
from Java
 The JDBC Classes and Interfaces are in the java.sql package
 JDBC is Java API for executing SQL statements

Provides a standard API for tool/database developers

Possible to write database applications using a pure Java API

Easy to send SQL statements to virtually any relational database
 What does JDBC do?
 Establish a connection with a database
 Send SQL statements
 Process the results
JDBC Driver
JAVA Applet/
Application Database
JDBC Call
Database
Command
 Reason for JDBC
 Database vendors (Microsoft Access, Oracle etc.) provide
proprietary (non standard) API for sending SQL to the server
and receiving results from it
 Languages such as C/C++ can make use of these proprietary
APIs directly

High performance

Can make use of non standard features of the database

All the database code needs to be rewritten if you change
database vendor or product
 JDBC is a vendor independent API for accessing relational
data from different database vendors in a consistent way
CCTM: Course material developed by James King (james.king@londonmet.ac.uk)
Overview (2/2)
History of JDBC (1/2)
 JDBC 1.0 released 9/1996.
 Contains basic functionality to connect to database, query database,
process results
 JDBC classes are part of java.sql package
 Comes with JDK 1.1
 JDBC 2.0 released 5/1998
 Comes with JDK 1.2
 javax.sql contains additional functionality
 Additional functionality:

Scroll in result set or move to specific row

Update database tables using Java methods instead of SQL
commands

Send multiple SQL statements to the database as a batch

Use of SQL3 datatypes as column values
History of JDBC (2/2)
 JDBC 3.0 released 2/2002
 Comes with Java 2, J2SE 1.4

Support for:

Connection pooling

Multiple result sets

Prepared statement pooling

Save points in transactions
JDBC Model
 JDBC consists of two parts:
 JDBC API, a purely Java-based API
 JDBC driver manager

Communicates with vendor-specific
drivers
 Connection con =
DriverManager.getConnection( "jd
bc:myDriver:myDatabase",
username, password);
JAVA Applet/
Application
JDBC API
Driver Manager
Driver API
Vendor Specific
JDBC Driver
JDBC-ODBC Bridge
Database
Vender Specific
ODBC Driver
Database
Java Application
Developer
JDBC Developer
Vender Specific
JDBC developer
JDBC Programming Steps
Connect
Query
Process Results
Close
1) Register the driver
2) Create a connection to the database
1) Create a statement
2) Query the database
1) Get a result set
2) Assign results to Java variables
1) Close the result set
2) Close the statement
3) Close the connection
Skeleton Code
Class.forName(DRIVERNAME);
Connection con = DriverManager.getConnection(
CONNECTIONURL, DBID, DBPASSWORD);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM member);
While(rs.next())
{
Int x = rs.getInt(“a”);
String s = rs.getString(“b”);
Float f = rs.getFloat(“c”);
}
rs.close();
stmt.close();
con.close();
Loading a JDBC driver
Connecting to a database
Processing the result set
Closing the connections
Executing SQL
Step 1 : Loading a JDBC Driver
 A JDBC driver is needed to connect to a database
 Loading a driver requires the class name of the driver.
Ex) JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver
Oracle driver: oracle.jdbc.driver.OracleDriver
MySQL: com.mysql.jdbc.Driver
 Loaing the driver class
Class.forName("com.mysql.jdbc.Driver");
 It is possible to load several drivers.
 The class DriverManager manages the loaded driver(s)
Step 2 : Connecting to a Database (1/2)
 JDBC URL for a database
 Identifies the database to be connected
 Consists of three-part:
jdbc:<subprotocol>:<subname>
Protocol: JDBC is
the only protocol in
JDBC
Protocol: JDBC is
the only protocol in
JDBC
Subname: indicates the location and
name of the database to be
accessed. Syntax is driver specific
Subname: indicates the location and
name of the database to be
accessed. Syntax is driver specific
Sub-protocol:
identifies a
database
driver
Sub-protocol:
identifies a
database
driver
Ex) jdbc:mysql://oopsla.snu.ac.kr/mydb
The syntax for the name of the database is a little messy and is
unfortunately vendor specific
JDBC URL
Vendor of database, Location of
database server and name of
database
Username Password
Step 2 : Connecting to a Database (2/2)
 The DriverManager allows you to connect to a database using
the specified JDBC driver, database location, database name,
username and password.
 It returns a Connection object which can then be used to
communicate with the database.
Connection connection =
DriverManager.getConnection("jdbc:mysql://oopsla.snu.ac.kr/mydb",“useri
d",“password");
JDBC URL
Vendor of database, Location of
database server and name of
database
Username Password
Step 3 : Executing SQL (1/2)
 Statement object
 Can be obtained from a Connection object
 Sends SQL to the database to be executed
 Statement has three methods to execute a SQL statement:
 executeQuery() for QUERY statements

Returns a ResultSet which contains the query results
 executeUpdate() for INSERT, UPDATE, DELETE statements

Returns an integer, the number of affected rows from the SQL
 execute() for either type of statement
Statement statement = connection.createStatement();
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery
("select RENTAL_ID, STATUS from ACME_RENTALS");
Statement stmt = conn.createStatement();
int rowcount = stmt.executeUpdate
("delete from ACME_RENTAL_ITEMS
where rental_id = 1011");
Step 3 : Executing SQL (2/2)
 Execute a select statement
 Execute a delete statement
Step 4 : Processing the Results (1/2)
 JDBC returns the results of a query in a ResultSet object
 ResultSet object contains all of the rows which satisfied the conditions
in an SQL statement
 A ResultSet object maintains a cursor pointing to its current
row of data
 Use next() to step through the result set row by row

next() returns TRUE if there are still remaining records
 getString(), getInt(), and getXXX() assign each value to a Java
variable
Record 1 Record 2 Record 3 Record 4
ResultSetInternal Pointer
The internal pointer starts one before the first record
Step 4 : Processing the Results (2/2)
 Example
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT ID, name, score FROM table1”);
While (rs.next()){
int id = rs.getInt(“ID”);
String name = rs.getString(“name”);
float score = rs.getFloat(“score”);
System.out.println(“ID=” + id + “ ” + name + “ ” + score);}
NOTE
You must step the cursor to the first record before read the results
This code will not skip the first record
ID name score
1 James 90.5
2 Smith 45.7
3 Donald 80.2
Table1
Output
ID=1 James 90.5
ID=2 Smith 45.7
ID=3 Donald 80.2
Step 5 : Closing Database Connection
 It is a good idea to close the Statement and Connection objects
when you have finished with them
 Close the ResultSet object
rs.close();
 Close the Statement object
stmt.close();
 Close the connection
connection.close();
The PreparedStatement Object
 A PreparedStatement object holds precompiled SQL
statements
 Use this object for statements you want to execute more than
once
 A PreparedStatement can contain variables (?) that you supply
each time you execute the statement
// Create the prepared statement
PreparedStatement pstmt = con.prepareStatement(“
UPDATE table1 SET status = ? WHERE id =?”)
// Supply values for the variables
pstmt.setString (1, “out”);
pstmt.setInt(2, id);
// Execute the statement
pstmt.executeUpdate();

More Related Content

What's hot

Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
slire
 
Introduction to Object Oriented databases
Introduction to Object Oriented databasesIntroduction to Object Oriented databases
Introduction to Object Oriented databases
Dr. C.V. Suresh Babu
 
Coda file system
Coda file systemCoda file system
Coda file system
Sneh Pahilwani
 
java Jdbc
java Jdbc java Jdbc
java Jdbc
Ankit Desai
 
Java rmi
Java rmiJava rmi
Java rmi
kamal kotecha
 
Java database connectivity
Java database connectivityJava database connectivity
Java database connectivity
Vaishali Modi
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
Return on Intelligence
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
Kartik Raghuvanshi
 
Adbms 16 object definition language
Adbms 16 object definition languageAdbms 16 object definition language
Adbms 16 object definition language
Vaibhav Khanna
 
STRUCTURE OF SQL QUERIES
STRUCTURE OF SQL QUERIESSTRUCTURE OF SQL QUERIES
STRUCTURE OF SQL QUERIES
VENNILAV6
 
Transactions and Concurrency Control
Transactions and Concurrency ControlTransactions and Concurrency Control
Transactions and Concurrency Control
Dilum Bandara
 
Java basics mind map
Java basics mind mapJava basics mind map
Java basics mind map
Navinda Dissanayake
 
Java servlets and CGI
Java servlets and CGIJava servlets and CGI
Java servlets and CGI
lavanya marichamy
 
Remote Method Innovation (RMI) In JAVA
Remote Method Innovation (RMI) In JAVARemote Method Innovation (RMI) In JAVA
Remote Method Innovation (RMI) In JAVA
Prankit Mishra
 
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJSQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
Dharita Chokshi
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical Analyzer
Archana Gopinath
 
Servlets api overview
Servlets api overviewServlets api overview
Servlets api overview
ramya marichamy
 

What's hot (20)

Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 
Jdbc Ppt
Jdbc PptJdbc Ppt
Jdbc Ppt
 
Introduction to Object Oriented databases
Introduction to Object Oriented databasesIntroduction to Object Oriented databases
Introduction to Object Oriented databases
 
Database System Architectures
Database System ArchitecturesDatabase System Architectures
Database System Architectures
 
Coda file system
Coda file systemCoda file system
Coda file system
 
java Jdbc
java Jdbc java Jdbc
java Jdbc
 
Java rmi
Java rmiJava rmi
Java rmi
 
Java database connectivity
Java database connectivityJava database connectivity
Java database connectivity
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
JDBC
JDBCJDBC
JDBC
 
Adbms 16 object definition language
Adbms 16 object definition languageAdbms 16 object definition language
Adbms 16 object definition language
 
STRUCTURE OF SQL QUERIES
STRUCTURE OF SQL QUERIESSTRUCTURE OF SQL QUERIES
STRUCTURE OF SQL QUERIES
 
Transactions and Concurrency Control
Transactions and Concurrency ControlTransactions and Concurrency Control
Transactions and Concurrency Control
 
Java basics mind map
Java basics mind mapJava basics mind map
Java basics mind map
 
Java servlets and CGI
Java servlets and CGIJava servlets and CGI
Java servlets and CGI
 
Remote Method Innovation (RMI) In JAVA
Remote Method Innovation (RMI) In JAVARemote Method Innovation (RMI) In JAVA
Remote Method Innovation (RMI) In JAVA
 
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJSQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
 
Language for specifying lexical Analyzer
Language for specifying lexical AnalyzerLanguage for specifying lexical Analyzer
Language for specifying lexical Analyzer
 
Servlets api overview
Servlets api overviewServlets api overview
Servlets api overview
 

Viewers also liked

Jdbc slide for beginers
Jdbc slide for beginersJdbc slide for beginers
Jdbc slide for beginersAmbarish Rai
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
Roman Pichlík
 
Java.sql package
Java.sql packageJava.sql package
Java.sql packagemyrajendra
 
JDBC
JDBCJDBC
KMUTNB - Internet Programming 6/7
KMUTNB - Internet Programming 6/7KMUTNB - Internet Programming 6/7
KMUTNB - Internet Programming 6/7
phuphax
 
Abzolute Logistic Solution
Abzolute Logistic SolutionAbzolute Logistic Solution
Abzolute Logistic Solution
phuphax
 
1 java servlets and jsp
1   java servlets and jsp1   java servlets and jsp
1 java servlets and jsp
Ankit Minocha
 

Viewers also liked (10)

Jdbc slide for beginers
Jdbc slide for beginersJdbc slide for beginers
Jdbc slide for beginers
 
Weather patterns
Weather patternsWeather patterns
Weather patterns
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
Java.sql package
Java.sql packageJava.sql package
Java.sql package
 
JDBC
JDBCJDBC
JDBC
 
Jdbc
JdbcJdbc
Jdbc
 
JDBC Tutorial
JDBC TutorialJDBC Tutorial
JDBC Tutorial
 
KMUTNB - Internet Programming 6/7
KMUTNB - Internet Programming 6/7KMUTNB - Internet Programming 6/7
KMUTNB - Internet Programming 6/7
 
Abzolute Logistic Solution
Abzolute Logistic SolutionAbzolute Logistic Solution
Abzolute Logistic Solution
 
1 java servlets and jsp
1   java servlets and jsp1   java servlets and jsp
1 java servlets and jsp
 

Similar to Jdbc (database in java)

jdbc_presentation.ppt
jdbc_presentation.pptjdbc_presentation.ppt
jdbc_presentation.ppt
DrMeenakshiS
 
Introduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applicationsIntroduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applications
Fulvio Corno
 
Jdbc
JdbcJdbc
Jdbc sasidhar
Jdbc  sasidharJdbc  sasidhar
Jdbc sasidhar
Sasidhar Kothuru
 
Java jdbc
Java jdbcJava jdbc
Java jdbc
Arati Gadgil
 
Final Database Connectivity in JAVA.ppt
Final Database Connectivity in JAVA.pptFinal Database Connectivity in JAVA.ppt
Final Database Connectivity in JAVA.ppt
TabassumMaktum
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivitybackdoor
 
JDBC java for learning java for learn.ppt
JDBC java for learning java for learn.pptJDBC java for learning java for learn.ppt
JDBC java for learning java for learn.ppt
kingkolju
 
Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)
Luzan Baral
 
Lecture 1. java database connectivity
Lecture 1. java database connectivityLecture 1. java database connectivity
Lecture 1. java database connectivity
Waheedullah Suliman Khail
 

Similar to Jdbc (database in java) (20)

JDBC
JDBCJDBC
JDBC
 
jdbc_presentation.ppt
jdbc_presentation.pptjdbc_presentation.ppt
jdbc_presentation.ppt
 
Lecture17
Lecture17Lecture17
Lecture17
 
JDBC.ppt
JDBC.pptJDBC.ppt
JDBC.ppt
 
Jdbc introduction
Jdbc introductionJdbc introduction
Jdbc introduction
 
Introduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applicationsIntroduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applications
 
Jdbc[1]
Jdbc[1]Jdbc[1]
Jdbc[1]
 
JDBC programming
JDBC programmingJDBC programming
JDBC programming
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc sasidhar
Jdbc  sasidharJdbc  sasidhar
Jdbc sasidhar
 
Java jdbc
Java jdbcJava jdbc
Java jdbc
 
Prashanthi
PrashanthiPrashanthi
Prashanthi
 
Final Database Connectivity in JAVA.ppt
Final Database Connectivity in JAVA.pptFinal Database Connectivity in JAVA.ppt
Final Database Connectivity in JAVA.ppt
 
JDBC
JDBCJDBC
JDBC
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Jdbc 1
Jdbc 1Jdbc 1
Jdbc 1
 
JDBC java for learning java for learn.ppt
JDBC java for learning java for learn.pptJDBC java for learning java for learn.ppt
JDBC java for learning java for learn.ppt
 
Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)
 
Lecture 1. java database connectivity
Lecture 1. java database connectivityLecture 1. java database connectivity
Lecture 1. java database connectivity
 
Jdbc
JdbcJdbc
Jdbc
 

Recently uploaded

Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
Kamal Acharya
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
Kamal Acharya
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
Kamal Acharya
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
Kamal Acharya
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
abh.arya
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 

Recently uploaded (20)

Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 

Jdbc (database in java)

  • 2. Overview (1/2)  JDBC  JDBC is a standard interface for connecting to relational databases from Java  The JDBC Classes and Interfaces are in the java.sql package  JDBC is Java API for executing SQL statements  Provides a standard API for tool/database developers  Possible to write database applications using a pure Java API  Easy to send SQL statements to virtually any relational database  What does JDBC do?  Establish a connection with a database  Send SQL statements  Process the results JDBC Driver JAVA Applet/ Application Database JDBC Call Database Command
  • 3.  Reason for JDBC  Database vendors (Microsoft Access, Oracle etc.) provide proprietary (non standard) API for sending SQL to the server and receiving results from it  Languages such as C/C++ can make use of these proprietary APIs directly  High performance  Can make use of non standard features of the database  All the database code needs to be rewritten if you change database vendor or product  JDBC is a vendor independent API for accessing relational data from different database vendors in a consistent way CCTM: Course material developed by James King (james.king@londonmet.ac.uk) Overview (2/2)
  • 4. History of JDBC (1/2)  JDBC 1.0 released 9/1996.  Contains basic functionality to connect to database, query database, process results  JDBC classes are part of java.sql package  Comes with JDK 1.1  JDBC 2.0 released 5/1998  Comes with JDK 1.2  javax.sql contains additional functionality  Additional functionality:  Scroll in result set or move to specific row  Update database tables using Java methods instead of SQL commands  Send multiple SQL statements to the database as a batch  Use of SQL3 datatypes as column values
  • 5. History of JDBC (2/2)  JDBC 3.0 released 2/2002  Comes with Java 2, J2SE 1.4  Support for:  Connection pooling  Multiple result sets  Prepared statement pooling  Save points in transactions
  • 6. JDBC Model  JDBC consists of two parts:  JDBC API, a purely Java-based API  JDBC driver manager  Communicates with vendor-specific drivers  Connection con = DriverManager.getConnection( "jd bc:myDriver:myDatabase", username, password); JAVA Applet/ Application JDBC API Driver Manager Driver API Vendor Specific JDBC Driver JDBC-ODBC Bridge Database Vender Specific ODBC Driver Database Java Application Developer JDBC Developer Vender Specific JDBC developer
  • 7. JDBC Programming Steps Connect Query Process Results Close 1) Register the driver 2) Create a connection to the database 1) Create a statement 2) Query the database 1) Get a result set 2) Assign results to Java variables 1) Close the result set 2) Close the statement 3) Close the connection
  • 8. Skeleton Code Class.forName(DRIVERNAME); Connection con = DriverManager.getConnection( CONNECTIONURL, DBID, DBPASSWORD); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM member); While(rs.next()) { Int x = rs.getInt(“a”); String s = rs.getString(“b”); Float f = rs.getFloat(“c”); } rs.close(); stmt.close(); con.close(); Loading a JDBC driver Connecting to a database Processing the result set Closing the connections Executing SQL
  • 9. Step 1 : Loading a JDBC Driver  A JDBC driver is needed to connect to a database  Loading a driver requires the class name of the driver. Ex) JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver Oracle driver: oracle.jdbc.driver.OracleDriver MySQL: com.mysql.jdbc.Driver  Loaing the driver class Class.forName("com.mysql.jdbc.Driver");  It is possible to load several drivers.  The class DriverManager manages the loaded driver(s)
  • 10. Step 2 : Connecting to a Database (1/2)  JDBC URL for a database  Identifies the database to be connected  Consists of three-part: jdbc:<subprotocol>:<subname> Protocol: JDBC is the only protocol in JDBC Protocol: JDBC is the only protocol in JDBC Subname: indicates the location and name of the database to be accessed. Syntax is driver specific Subname: indicates the location and name of the database to be accessed. Syntax is driver specific Sub-protocol: identifies a database driver Sub-protocol: identifies a database driver Ex) jdbc:mysql://oopsla.snu.ac.kr/mydb The syntax for the name of the database is a little messy and is unfortunately vendor specific
  • 11. JDBC URL Vendor of database, Location of database server and name of database Username Password Step 2 : Connecting to a Database (2/2)  The DriverManager allows you to connect to a database using the specified JDBC driver, database location, database name, username and password.  It returns a Connection object which can then be used to communicate with the database. Connection connection = DriverManager.getConnection("jdbc:mysql://oopsla.snu.ac.kr/mydb",“useri d",“password"); JDBC URL Vendor of database, Location of database server and name of database Username Password
  • 12. Step 3 : Executing SQL (1/2)  Statement object  Can be obtained from a Connection object  Sends SQL to the database to be executed  Statement has three methods to execute a SQL statement:  executeQuery() for QUERY statements  Returns a ResultSet which contains the query results  executeUpdate() for INSERT, UPDATE, DELETE statements  Returns an integer, the number of affected rows from the SQL  execute() for either type of statement Statement statement = connection.createStatement();
  • 13. Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery ("select RENTAL_ID, STATUS from ACME_RENTALS"); Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate ("delete from ACME_RENTAL_ITEMS where rental_id = 1011"); Step 3 : Executing SQL (2/2)  Execute a select statement  Execute a delete statement
  • 14. Step 4 : Processing the Results (1/2)  JDBC returns the results of a query in a ResultSet object  ResultSet object contains all of the rows which satisfied the conditions in an SQL statement  A ResultSet object maintains a cursor pointing to its current row of data  Use next() to step through the result set row by row  next() returns TRUE if there are still remaining records  getString(), getInt(), and getXXX() assign each value to a Java variable Record 1 Record 2 Record 3 Record 4 ResultSetInternal Pointer The internal pointer starts one before the first record
  • 15. Step 4 : Processing the Results (2/2)  Example Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT ID, name, score FROM table1”); While (rs.next()){ int id = rs.getInt(“ID”); String name = rs.getString(“name”); float score = rs.getFloat(“score”); System.out.println(“ID=” + id + “ ” + name + “ ” + score);} NOTE You must step the cursor to the first record before read the results This code will not skip the first record ID name score 1 James 90.5 2 Smith 45.7 3 Donald 80.2 Table1 Output ID=1 James 90.5 ID=2 Smith 45.7 ID=3 Donald 80.2
  • 16. Step 5 : Closing Database Connection  It is a good idea to close the Statement and Connection objects when you have finished with them  Close the ResultSet object rs.close();  Close the Statement object stmt.close();  Close the connection connection.close();
  • 17. The PreparedStatement Object  A PreparedStatement object holds precompiled SQL statements  Use this object for statements you want to execute more than once  A PreparedStatement can contain variables (?) that you supply each time you execute the statement // Create the prepared statement PreparedStatement pstmt = con.prepareStatement(“ UPDATE table1 SET status = ? WHERE id =?”) // Supply values for the variables pstmt.setString (1, “out”); pstmt.setInt(2, id); // Execute the statement pstmt.executeUpdate();

Editor's Notes

  1. Dynamically Executing an Unknown SQL Statement The following example uses execute() to dynamically execute an unknown statement: public void executeStmt (String statement) throws SQLException { Statement stmt = conn.createStatement(); // Execute the statement boolean result = stmt.execute(statement); if (result) {// statement was a query ResultSet rset = stmt.getResultSet(); // Process the results ... } else {// statement was an update or DDL int updateCount = stmt.getUpdateCount(); // Process the results ... }}