Download - Jdbc 1
![Page 2: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/2.jpg)
How can I get information from database in my Java application?
![Page 3: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/3.jpg)
JDBC is the Java-based API, which provides a set of classes and interfaces written in Java to access and manipulate different kinds of databases
![Page 4: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/4.jpg)
No matter what database is used!
![Page 5: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/5.jpg)
JDBC takes care for you Developer
I don’t care eh eh eh …
![Page 6: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/6.jpg)
JDBC is not an acronym. It is often mistaken to be "Java Database Connectivity"
![Page 7: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/7.jpg)
Advantages
Continued usage of existing data Vendor independent Platform independent (Cross platform) Ease of use
Behind the scenes database
![Page 8: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/8.jpg)
Two-Tier Data Processing Model
![Page 9: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/9.jpg)
Three-Tier Data Processing Model
![Page 10: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/10.jpg)
JDBC API
![Page 11: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/11.jpg)
JDBC Drivers
. Converts the client request to a db understandable, native format and present it to db. . Converts the response to the Java format and presented to the client.
![Page 12: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/12.jpg)
JDBC Type 1 Driver (JDBC-ODBC Bridge)
Advantages : MS Access or Microsoft SQL Server Disadvantages: don’t support software installation on client native ODBC libraries must reside on the server => reduces the performance
![Page 13: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/13.jpg)
JDBC Type 2 Driver (Native-API partly Java Driver)
Advantages : Faster than Type 1 Disadvantages: don’t support software installation on client
![Page 14: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/14.jpg)
JDBC Type 3 Driver (JDBC Net pure Java Driver)
Converts JDBC calls into a DBMS-independent network protocol, which is translated to database-specific calls by a middle-tier server.
Advantages : The most flexible type, High adaptability, control underlying database without modifying the client side driver. Disadvantages: Database-specific code needs to be executed in the middle- tier server. Needs to implement security like firewalls.
![Page 15: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/15.jpg)
JDBC Type 4 Driver (Native-protocol pure Java Driver, Java to DB Protocol) Convert JDBC calls into the network protocol that communicates directly with the database. Advantages : Communicate directly with the db engine using Java Sockets. Fastest JDBC drivers available. No addition on clients. Disadvantages: database-specific
![Page 16: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/16.jpg)
Steps to develop a JDBC App
![Page 17: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/17.jpg)
Loading Driver Class.forName(<protocol>)
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
Establishing a connection Connection object DriverManager.getConnection() Connection cn = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Dev eloperApps;user=sa;Password=123456");
![Page 18: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/18.jpg)
Creating statement and queries Statement interface Statement
PreparedStatement CallableStatement
connection.createStatement() PreparedStatement pstmt = cn.prepareStatement(“Select * from ToppingDetails”);
![Page 19: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/19.jpg)
executeQuery() & ResultSet object connection.createStatement() PreparedStatement pstmt = cn.prepareStatement(“Select * from ToppingDetails”); ResultSet rs = pstmt.executeQuery();
executeUpdate() INSERT, DELETE, UPDATE, SQL DDL (Data Definition Language) return int value : row count
execute() Return more than one result set Return true if a result set object is generated
![Page 20: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/20.jpg)
Handling exeption ClassNotFoundException SQLException
![Page 21: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/21.jpg)
Processing queries Data in the ResultSet is in a tabular format. The initial cursor is positioned before the first row Traverse using next() method. next() return : true if the current cursor position is on a valid row false if the cursor is placed at a position after the last row
![Page 22: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/22.jpg)
Extract the data getString() getInt() getFloat() getObject()
![Page 23: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/23.jpg)
Closing the Database Connection close() method is provided by the Connection, Statement, ResultSet objects. rs.close(); pstmt.close(); cn.close();
![Page 24: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/24.jpg)
Relationship of Connection to other objects
![Page 25: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/25.jpg)
Interactions & relationships between the key JDBC classes and interfaces
![Page 26: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/26.jpg)
Database metadata Data about data. defines structure and properties of the data stored. Column name Datatypes for columns
![Page 27: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/27.jpg)
DatabaseMetaData interface getMetaData() Connection obj DatabaseMetaData dmd = cn.getMetaData()
![Page 28: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/28.jpg)
DatabaseMetaData method
![Page 29: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/29.jpg)
ResultSetMetaData interface metadata of ResultSet. ResultSetMetaData rmd = rs.getMetaData()
![Page 30: Jdbc 1](https://reader034.vdocuments.net/reader034/viewer/2022052618/554ebba5b4c905064d8b45b1/html5/thumbnails/30.jpg)
ResultSetMetaData method getColumnName() getColumnCount() getColumnType() String colName = rmd.getColumnName(2); int totalCols = rmd.getColumnCount(); String colType = rmd.getColumnType(1);