Professional Documents
Culture Documents
Java API For Database Connectivity
Java API For Database Connectivity
Java Application
Java DB API
1. Open a Connection
2. Send a statement
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
Net Driver
JDBC driver type-2
• Uses vendor-provided local libraries
• Most efficient
Native Driver
Non Java
Net Driver
JDBC driver type-3 & 4
• 100% java.
JDBC Driver
Implements a proprietary Java
Protocol in java
Complete JDBC Architecture
Java Application
JDBC Interface
JDBC Driver Manager
JDBC Driver
JDBC JDBC–ODBC JDBC Driver JDBC Driver Interface
Net Bridge B C D
Driver A
Native Driver B
A B C D
On Different Platforms
JDBC API JDBC
Driver
Classes
PC
MAC
DBMS
Unix
JDBC Interface classes
• Java.sql package
– DriverManager
– Connection
– Statement
– CallableStatement
– PreparedStatement
– Resultset
– ResultSetMetaData
– DatabaseMetatData
JDBC Interfaces
Driver Manager
Prepared
Statement
Statement
ResultSet
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