JDBC. Oracle ODBC SP API SP API. SQL server C function calls. SQL server ODBC SP API. Oracle DSN Oracle ODBC Oracle

Similar documents
JDBC. Sun Microsystems has included JDBC API as a part of J2SDK to develop Java applications that can communicate with databases.

JDBC Drivers Type. JDBC drivers implement the defined interfaces in the JDBC API for interacting with your database server.

Enterprise Java Unit 1- Chapter 6 Prof. Sujata Rizal

Introduction JDBC 4.1. Bok, Jong Soon

e-pg Pathshala Subject: Computer Science Paper: Web Technology Module: JDBC INTRODUCTION Module No: CS/WT/26 Quadrant 2 e-text

JDBC [Java DataBase Connectivity]

JDBC 3.0. Java Database Connectivity. 1 Java

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation

JDBC Architecture. JDBC API: This provides the application-to- JDBC Manager connection.

Unit 3 - Java Data Base Connectivity

Lecture 2. Introduction to JDBC

UNIT-3 Java Database Client/Server

Discuss setting up JDBC connectivity. Demonstrate a JDBC program Discuss and demonstrate methods associated with JDBC connectivity

UNIT III - JDBC Two Marks

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Top 50 JDBC Interview Questions and Answers

Questions and Answers. A. A DataSource is the basic service for managing a set of JDBC drivers.

JDBC - INTERVIEW QUESTIONS

JDBC Programming: Intro

SNS COLLEGE OF ENGINEERING, Coimbatore

Unit 2 JDBC Programming

JDBC SHORT NOTES. Abstract This document contains short notes on JDBC, their types with diagrams. Rohit Deshbhratar [ address]

Acknowledgments About the Authors

PESIT Bangalore South Campus

You write standard JDBC API application and plug in the appropriate JDBC driver for the database the you want to use. Java applet, app or servlets

Table of Contents. Introduction... xxi

1. PhP Project. Create a new PhP Project as shown below and click next

Cyrus Shahabi Computer Science Department University of Southern California C. Shahabi

Application Programming for Relational Databases

The Design of JDBC The Structured Query Language Basic JDBC Programming Concepts Query Execution Scrollable and Updatable Result Sets

a. Jdbc:ids://localhost:12/conn?dsn=dbsysdsn 21. What is the Type IV Driver URL? a. 22.

Java and the Java DataBase Connectivity (JDBC) API. Todd Kaufman April 25, 2002

UNIT-VIII Introduction of Java Database Connectivity

Database Access with JDBC. Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige

Intoduction to JDBC (Java Database Connectivity-- Connecting to DBMS)

JAVA AND DATABASES. Summer 2018

About Database Adapters

Database connectivity (I) ()

SQL in a Server Environment

Part I: Stored Procedures. Introduction to SQL Programming Techniques. CSC 375, Fall 2017

Database Programming Overview. COSC 304 Introduction to Database Systems. Database Programming. JDBC Interfaces. JDBC Overview

JDBC drivers are divided into four types or levels. The different types of jdbc drivers are:

Programming in Java

Pieter van den Hombergh. March 25, 2018

Chapter 3 DB-Gateways

Writing Portable Applications for J2EE. Pete Heist Compoze Software, Inc.

Chapter 3 DB-Gateways

Database Explorer Quickstart

Overview. Database Application Development. SQL in Application Code. SQL in Application Code (cont.)

Database Application Development

Database Application Development

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim

Working with Database Connections. Version: 7.3

CSE 308. Database Issues. Goals. Separate the application code from the database

Introduction to SQL & Database Application Development Using Java

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

Hyperion System 9 Strategic Finance release

Chapter 3 DB-Gateways

JDBC MOCK TEST JDBC MOCK TEST IV

Oracle Database Heterogeneous Connectivity User Guide

Topic 12: Database Programming using JDBC. Database & DBMS SQL JDBC

Java Training For Six Weeks

Database Application Development

Hyperion System 9 BI+ Analytic Services

Working with Database Connections. Version: 18.1

The Object-Oriented Paradigm. Employee Application Object. The Reality of DBMS. Employee Database Table. From Database to Application.

(C) Global Journal of Engineering Science and Research Management

Self-test Database application programming with JDBC

Oracle 10g: Java Programming

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

Working with Databases and Java

JDBC 2.0 (Java Database Connectivity)

Virtualians.ning.pk. 2 - Java program code is compiled into form called 1. Machine code 2. native Code 3. Byte Code (From Lectuer # 2) 4.

Intellicus Enterprise Reporting and BI Platform

CMPUT 391 Database Management Systems. JDBC in Review. - Lab 2 -

Hyperion System 9 Financial Management release

Database Application Development

BUSINESS INTELLIGENCE LABORATORY. Data Access: Relational Data Bases. Business Informatics Degree

Database Application Development

Creating Enterprise and WorkGroup Applications with 4D ODBC

Come & Join Us at VUSTUDENTS.net

Allenhouse Institute of Technology (UPTU Code : 505) OOT Notes By Hammad Lari for B.Tech CSE V th Sem

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

DATABASE DESIGN I - 1DL300

E Oracle 10g Java Bootcamp I v1

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

CS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1

Perceptive TransForm E-Forms Manager Data Source

Chapter 1 An introduction to relational databases and SQL

1Z Java SE 5 and 6, Certified Associate Exam Summary Syllabus Questions

ABOUT CORE JAVA COURSE SCOPE:

WHAT IS EJB. Security. life cycle management.

Student Number: Please fill out the identification section above as well as the one on the back page, and read the instructions below. Good Luck!

Elixir Data Designer User Manual

Jdbc Connection In Java Example For Oracle 10g

Cincom Smalltalk. ObjectStudio. Database User s Guide P ObjectStudio 8.3

SQL: Programming Midterm in class next Thursday (October 5)

Outline. Lecture 10: Database Connectivity -JDBC. Java Persistence. Persistence via Database

Introduction to MySQL. Database Systems

Transcription:

How to Interact with DataBase? THETOPPERSWAY.COM Generally every DB vendor provides a User Interface through which we can easily execute SQL query s and get the result (For example Oracle Query Manager for Oracle, and TOAD (www.quest.com) tool common to all the databases). And these tools will help DB developers to create database. But as a programmer we want to interact with the DB dynamically to execute some SQL queries from our application (Any application like C, C++, JAVA etc), and for this requirement DB vendors provide some Native Libraries (Vendor Specific) using this we can interact with the DB i.e. If you want to execute some queries on Oracle DB, oracle vendor provides an OCI (Oracle Call Interface) Libraries to perform the same. About ODBC What is ODBC ODBC (Open Database Connectivity) is an ISV (Independent software vendor product) composes of native API to connect to different databases through via a single API called ODBC. Open Database Connectivity (ODBC) is an SQL oriented application programming interface developed by in collaboration with IBM and some other database vendors. ODBC comes with Microsoft products and with all databases on Windows OS. ODBC Architecture Oracle ODBC SP API Oracle Front End Application ODBC API SP API SQL server C function calls SQL server ODBC SP API Sybase Oracle DSN Oracle ODBC Oracle My DSN Advantages SQL Server DSN SQL server ODBC SQL Server Sybase Single API (Protocol) is used to interact with any DB Switching from one DB to another is easy Doesn t require any modifications in the Application when you want to shift from one DB to other. What for?

As we have studied about ODBC and is advantages and came to know that it provides a common API to interact with any DB which has an ODBC Service Provider s Implementation written in Native API that can be used in your applications. If an application wants to interact with the DB then the options which have been explained up to now in this book are: 1. Using Native Libraries given by the DB vendor 2. Using ODBC API And we have listed there Advantages and Disadvantages. But if the application is a JAVA application then the above given options are not recommended to be used due to the following reasons 1. Native Libraries given by DB vendor a. Application becomes vendor dependent and b. The application has to use JNI to interact with Native Lib which may cause serious problem for Platform Independency in our applications. 2. And the second option given was using ODBC API which can solve the 1.a problem but again this ODBC API is also a Native API, so we have to use JNI in our Java applications which lead to the 1.b described problem. And the answer for these problems is (Java Data Base Connectivity) which provides a common Java API to interact with any DB. What is As explained above standards for Java Data Base Connectivity. It is a specification given by Sun Microsystems and standards followed by X/Open SAG (SQL Access Group) CLI (Call Level Interface) to interact with the DB. Java programing language methods. The API provides database-independent connectivity between the JAVA Applications and a wide range of tabular data bases. technology allows an application component provider to: Perform connection and authentication to a database server Manage transactions Moves SQL statements to a database engine for preprocessing and execution Executes stored procedures Inspects and modifies the results from SELECT statements API API is divided into two parts 1. Core API 2. Extension or Optional API Core API (java.sql package) This part of API deals with the following futures 1. Establish a connection to a DB 2. Getting DB Details 3. Getting Driver Details 4. maintaining Local Transaction 5. executing query s 6. getting result s (ResultSet) 7. preparing pre-compiled SQL query s and executing 8. executing procedures & functions

Ext OR Optional API (javax.sql package) This part of API deals with the following futures 1. Resource Objects with Distributed Transaction Management support 2. Connection Pooling. These two parts of Specification are the part of J2SE and are inherited into J2EE i.e. this specification API can be used with all the component s given under J2SE and J2EE. Architecture: Application SPA PI Driver SPA PI SP Oracle DB MS SQL Server DB Sybase DB In the above show archetecture diagram the Driver forms an abstraction layer between the JAVA Application and DB, and is implemented by 3 rd party vendors or a DB Vendor. But whoever may be the vendor and what ever may be the DB we need not to worry will just us JDCB API to give instructions to Driver and then it s the responsibility of Driver Provider to convert the Call to the DB Specific Call. And this 3 rd party vendor or DB vendor implemented Drivers are classified into 4-Types namely Types Of Drivers : 1. Type-1 ( ODBC-Bridge Driver) -ODBC Bridge Driver 2. Type-2 (Java-Native API Driver) Native API Partly JAVA Driver (Thick Driver) 3. Type-3 (Java Net Protocol Driver) Intermediate DataBase Access Server 4. Type-4 (Java Native Protocol driver) Pure JAVA Driver (Thin driver) Type-1 : -ODBC Bridge Driver : Since ODBC is written in C-language using pointers, so JAVA does t support pointers, a java program can t communate directly with the DataBase. The -ODBC bridge drivertransulates API calls to ODBC API calls. Architecture JAVA Application ODBC Driver Native ODBC Client driver Libraries DBMS Interface client libraries

This type of Driver is designed to convert the request call to ODBC call and ODBC response call to call. The uses this interface in order to communicate with the database, so neither the database nor the middle tier need to be Java compliant. However ODBC binary code must be installed on each client machine that uses this driver. This bridge driver uses a configured data source. Advantages Simple to use because ODBC drivers comes with DB installation/microsoft front/back office product installation ODBC Drivers comes with JDK software Disadvantages More number of layers between the application and DB. And more number of API conversions leads to the downfall of the performance. Slower than type-2 driver Where to use? This type of drivers are generaly used at the development time to test your application s. Because of the disadvantages listed above it is not used at production time. But if we are not available with any other type of driver implementations for a DB then we are forced to use this type of driver (for example Microsoft Access). Examples of this type of drivers JdbcOdbcDriver from sun Sun s JdbcOdbcDriver is one of type-1 drivers and comes along with sun j2sdk (JDK). 1. Software ODBC libraries has to be installed. 2. classpath No additional classpath settings are required apart from the runtime jar (c:\j2sdk1.4\jre\lib\rt.jar) which is defaultly configured. 3. Path No additional path configuration is required. 1. Driver class name sun.jdbc.odbc.jdbcodbcdriver 2. Driver URL dbc:odbc:<dsn> here <DSN> (Data Source Name) is an ODBC datasource name which is used by ODBC driver to locate one of the ODBC Service Provider implementation API which can in-turn connect to DB. Steps to create <DSN> 1. run Data Sources (ODBC) from Control Panal\Administrative Tools\ (for Windows 2000 server/2000 professional/xp) run ODBC Data Sources from Control Panel\

2. click on Add button available on the above displayed screen. this opens a new window titled Create New Data Source which displays all the available DB s lable DB s ODBC drivers currently installed on your system. 3. Select the suitable driver and click on Finish 4. Give the required info to the driver (like username, service id etc) Type-2 : Native API Partly JAVA Driver (Thick Driver) : Database calls are translated into Vendor-specific API calls. The database will process the request and send the results back through API to Driver this will translate the results to the standard and return them to the Java application. The Vendor specific language API must be installed on every client that runs the JAVA application. Architecture Application API Type II Driver SP API DBMS Client libraries (native) SP N/W DBMS OCI Libraries DBMS Server libraries (native) This driver converts the call given by the Java application to a DB specific native call (i.e. to C or C++) using JNI (Java Native Interface). Advantages :Faster than the other types of drivers due to native library participation in socket programing. Disadvantage : DB spcifiic native client library has to be installed in the client machine. Preferablly work in local network environment because network service name must be configured in client system Where to use? This type of drivers are suitable to be used in server side applications. Not recommended to use with the applications using two tire model (i.e. client and database layer s) because in this type of model client used to interact with DB using the driver and in such a situation the client system sould have the DB native library. Examples of this type of drivers 1. OCI 8 (Oracle Call Interface) for Oracle implemented by Oracle Corporation. Software: Oracle client software has to be installed in client machine classpath %ORACLE_HOME%\ora81\jdbc\lib\classes111.zip path %ORACLE_HOME%\ora81\bin

Driver class name oracle.jdbc.driver.oracledriver Driver URL jdbc:oracle:oci8:@tnsname Note: TNS Names of Oracle is available in Oracle installed folder %ORACLE_HOME%\Ora81\network\admin\tnsnames.ora 2. Weblogic Jdriver for Oracle implemented by BEA Weblogic: Oracle client software has to be installed in client machine weblogicoic dll s has to be set in the path classpath d:\bea\weblogic700\server\lib\weblogic.jar path %ORACLE_HOME%\ora81\bin; d:\bea\weblogic700\server\bin\<subfolder><sub folder> is o oci817_8 if you are using Oracle 8.1.x o oci901_8 for Oracle 9.0.x o oci920_8 for Oracle 9.2.x Driver class name weblogic.jdbc.oci.driver Driver URL jdbc:weblogic:oracle:hostname Type-3 Intermediate DataBase Access Server : Type-3 Driver uses an Intermediate(middleware) database driver that has the ability to connect multiple JAVA clients to multiple database servers. Client connect to the Databse server via an Intermediate server component (such as listener) that acts as a gateway for multple database servers. Bea weblogic includes Type-3 Driver. Architecture : Application Type III Driver Net protocol Middleware Listener DBMS DBMS API DBMS Interface Server Listener OCI Libraries DBMS Interface Client This type of drivers responsibility is to convert call to Net protocol (Middleware listener dependent) format and redirect the client request to Middleware Listener and middleware listener inturn uses type-1, type-2 or type-4 driver to interact with DB. Advantages: It allows the flexibility on the architecture of the application. In absence of DB vendor supplied driver we can use this driver Suitable for Applet clients to connect DB, because it uses Java libraries for communication between client and server. Disadvantages:

From client to server communication this driver uses Java libraries, but from server to DB connectivity this driver uses native libraries, hence number of API conversion and layer of interactions increases to perform operations that leads to performance deficit. Third party vendor dependent and this driver may not provide suitable driver for all DBs Where to use? Suitable for Applets when connecting to databases Examples of this type of drivers: 1. IDS Server (Intersolv) driver available for most of the Databases Software: IDS software required to be downloaded from the following URL [ http://www.idssoftware.com/idsserver.html -> Export Evaluation ] classpath C:\IDSServer\classes\jdk14drv.jar path Driver class name ids.sql.idsdriver Driver URL jdbc:ids://localhost:12/conn?dsn='idsexamples' Note: DSN Name must be created in ServerDSN Type-4 Pure JAVA Driver (Thin driver) : Type-4 Driver translates -API calls to direct network calls using vendor specific networking protocols by making direct server connections with the database. Architecture Application Type IV Driver Native Protocol DBMS Interface Server Listener DBMS API DBMS This type of driver converts the call to a DB defined native protocol. Advantage Type-4 driver are simple to deploy since there is No client native libraries required to be installed in client machine Comes with most of the Databases

Disadvantages: Slower in execution compared with other Driver due to Java libraries are used in socket communication with the DB Where to use? This type of drivers are sutable to be used with server side applications, client side application and Java Applets also. Examples of this type of drivers 1) Thin driver for Oracle implemented by Oracle Corporation classpath %ORACLE_HOME%\ora81\jdbc\lib\classes111.zip Driver class name oracle.jdbc.driver.oracledriver Driver URL jdbc:oracle:thin:@hostname:<port no>:<sid> <port no> 1521 <SID> -> ORCL 2) MySQL Jconnector for MySQL database classpath C:\mysql\mysql-connector-java-3.0.8-stable\mysql-connector-java- 3.0.8-stable-bin.jar Driver class name com.mysql.jdbc.driver Driver URL jdbc:mysql:///test Connection Connection is class in-turn holds the TCP/IP connection with DB. Functions available in this class are used to manage connection live-ness as long as application wants to connect with DB. The period for how long the connection exists is called as Session. This class also provides functions to execute various SQL statements on the DB. For instance the operations for DB are mainly divided into 3 types DDL (create, alter, and drop) DML (insert, select, update and delete) DCL (commit, rollback) and also call function_name (or) call procedure_name

Method Index Statement createstatement() PreparedStatement preparestatement(string presqloperation) CallableStatement preparecall(string calltoproc()) Statement Statement class is the super class in its hierarchy. Provides basic functions to execute query (select) and non-related (create, alter, drop, insert, update, delete) query operations. Method Index int executeupdate(string sql) This function accepts non-query based SQL operations; the return value int tells that how many number of rows effected/updated by the given SQL operation. ResultSet executequery(string sql) This function accepts SQL statement SELECT and returns java buffer object which contains temporary instance of SQL structure maintaining all the records retrieved from the DB. This object exists as long as DB connection exist. boolean execute() This function accepts all SQL operations including SELECT statement also. PreparedStatement PreparedStatement class is sub classing from Statement class. While connection class preparestatement function is creating one new instance this class, function takes one String argument that contains basic syntax of SQL operation represented with? for IN parameter representation. In the further stages of the program, programmer uses setxxx(int index, datatype identifier) to pass values into IN parameter and requests exdcute()/ exuecteupdate() call. Method Index setint(int index, int value) similar functions are provided for all other primitive parameters setstring(int index, String value) setobject(int index, Object value) setbinarystream(int index, InputStream is, int length) CallableStatement ResultSet ResultSetMetaData DatabaseMetaData BLOB CLOB REF SavePoint Struct SQLInput SQLOutput SQLData Example Of Using Type-1 Driver import java.sql.*; public class JdbceExample { public static void main(string[] args) {

} try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=drivermanager.getconnection("jdbc:odbc:stu_dsn"); Statement st=c.createstatement(); ResultSet r=st.executequery("select* from stu"); System.out.println("RollNo.\tName\tMarks\tBranch"); while(r.next()) { System.out.println(r.getInt(1)+"\t"+r.getString(2)+"\t"+r.getInt(3)+"\t"+r.getString(4)); } c.close(); } catch (SQLException e) { System.out.println("SQL ERROR"+e); } catch (Exception e) { System.out.println("ERROR"+e); } } THETOPPERSWAY.COM