Download JDBC

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
JDBC
Java API for Database Connectivity
Layout of this recitation
• Introduction to JDBC API
• JDBC Architecture
• Understanding the design of JDBC API
– Classes and relations among them
What is an API?
• application program interface
• a set of routines, protocols, and tools for
building software applications
• provides all the building blocks
What you expect in DB API
Java Application
1. Open a Connection
2. Send a statement
Java DB API
DBMS Engine
3. Retrieve results
4. Close a connection
1. Create a connection
Session
2. Execute statement
3. Send results
4. Close the session
Big picture
Java Application
JDBC API
JDBC Manager
JDBC Driver API
JDBC Drivers
Grey Area
Data Sources
JDBC driver type-1
• Uses the existing API
• Not the fastest
JDBC-ODBC Bridge
Java
ODBC Driver
Native Driver
Net Driver
Non Java
JDBC driver type-2
• Uses vendor-provided local libraries
• Most efficient
JDBC Driver
Java
Native Driver
Non Java
Net Driver
JDBC driver type-3 & 4
• 100% java.
JDBC – Net Driver
JDBC Driver
Implements a proprietary
Protocol in java
Java
Java
Complete JDBC Architecture
Java Application
JDBC Interface
JDBC Driver Manager
JDBC
Net
Driver A
JDBC–ODBC
Bridge B
JDBC Driver
C
ODBC Driver
Native Driver C
JDBC Driver
Interface
JDBC Driver
D
Native Driver B
A
B
C
D
On Different Platforms
JDBC
Driver
Classes
JDBC API
PC
MAC
DBMS
Unix
JDBC Interface classes
• Java.sql package
– DriverManager
– Connection
– Statement
– CallableStatement
– PreparedStatement
– Resultset
– ResultSetMetaData
– DatabaseMetatData
JDBC Interfaces
Driver Manager
Connection
Connection
Statement
ResultSet
Prepared
Statement
Connection
Simple Example
Import java.sql;
class SimpleExample {
public static void main(String args[]) {
String url = “jdbc:odbc:mysource”;
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection myConnection =
DriverManager.getConnection(url,”Bond”,”TopSecret”);
myConnection.close();
}
catch(java.lang.Exception) {
ex.printStackTrace();
}
}
}
Sending SQL statements
……
String query= “Select name,id,salary FROM employees ORDER By salary”;
Connection myConnection = DriverManager.getConnection(…..);
Statement myStatement = myConnection.createStatement();
ResultSet rs = myStatement.executeQuery(query);
While(rs.next){
String empName = rs.getString(1);
String empId = rs.getString(2);
String empSalary = rs.getString(3);
System.out.println(“Employee ” + empName + “ with id ” + empId
+ “ earns ” + empSalary);
}
myStatement.close();
myConnection.close();
…….
Statement’s Execute Methods
• ResultSet executeQuery()
– For SQL selects
• int executeUpdate()
– For Update,Delete,Insert and Create etc.
• boolean execute()
– For either type
– Returns resultSetisAvailable
Statements
• Statement
• PreparedStatement
• CallableStatement
Additional stuff
•
•
•
•
•
Datatypes: basic to CLOB, BLOB
Transaction Management
DDA with/without cursors
Batch updates
Metadata
– DatabaseMetaData
– ResultSetMetaData
– ParameterMetaData
Advanced Techniques
• Connection Pooling
• Dynamic SQL with Prepared Statements
• Auto-generated keys
References
• www.google.com
• http://java.sun.com/j2se/1.4/docs/api/
• JDBC 3.0: Java Database Connectivity.
– Bernard Van Haecke
Related documents