1.
What
is jdbc?
Ans: it is a standard abstraction/interface/protocol for
java application accessing tabular data store.
2.
What
is tabular data store?
Ans: It is storage unit, which organizes the data into rows
and columns (i.e: tables)
Example:
(1)
Data Base Servers
(2)
Oracle
(3)
SQL Servers
(4)
My Sql
(5)
Excel Documents
(6)
Comma separated values (CSV) FILES . i.e
001,rajendra,rajendra@yahoo.com,….
3.
Why
java application access in the form of Tabular data store?
Ans: To manage persistence data: means the data that can
outline the process in which it is created is known as persistent data.
Java serialization is one of the built in persistence
mechanism.
4.
What
is Java Serialization?
Ans: Java
Serialization is a built –in persistence mechanism of java for persisting the
java object. This mechanism works by describing the state of the object into
stream of bytes, which we can save to the file.
Note: we can use a transient keyword of java to describe a
stat member of an object to exclude from persisting the object by the java
persistence mechanism.
5.
Why use Database server to persist the
enterprise data?
Ans: we know that we have many types of datastores managing
the persistence data which includes the tabular data stores database servers.
But most of the enterprise applications works with the database server to
persist there data because of the following reasons:
·
It implements lots of challenges such as security, handling
concurrent data access, and fast and reliable access of data which are required
for most of the enterprises persistence data.
·
Also includes a convenient environment to access
such data stores.
History of Accessing Tabular Data stores:
Persistance: an act of persisting the data.
Why jdbc?
Ans: Simplifies creating data access layer of java
enterprise applications.
Fig: Option-1
Basically Database servers include network protocols i.e
Messaging Protocol and Transportation.
Accessing the
Database server implementing the DATABASE
network PROTOCOLS:
The basic style of accessing the database server from our
application could be, by implementing the data base network protocol.
However
this includes lots of challenges:
·
Includes lots of low-level programming using
threads and socket APIs.
·
Development and testing time and cost increases
·
Requires expert resources (i.e:
Developers/testers)
·
Difficult/costlier for future extensions
·
Migration from one database to other requires
lots of re-implementation which again time consuming and costlier.
·
The data base network protocols are
intentionally not properly (detailed) documented, thus it becomes difficult to
understand the protocols and implement the logic. Results to an application
more errors prone.
Using DATA BASE Native Driver:
·
To solve the above listed problems data base
vendors introduced the client component that can reside in the client process
simplifying accessing the database server.
·
For example we have OCE (ORACLE CALL INTERFACE)
from ORACLE DATABASE SERVER.
·
These components are generally referred as ‘Data
Base Native Drivers’
·
The one major problem which is still existing
with this approach is the application becomes vendor dependent. Thus migrating
from one database to other still requires changes in the application.
Port means
receiver or transmission
Upto now we discussed on two options to communicate with
Data Base server.
Option 1:
is logic is implemented in Low level language which directly
making calls to DATABASE SERVER.
Lets find the option-1:
This is good but has the following concerns:
1.
Makes the application tightly bounded to
database i.e: Database dependent.
2.
Lots of
low level logics to implement
3.
Understanding the database network protocol is
difficult.
OPTION 2:
Is implemented logic in High level language, DATABASE API
call to Database Vendor driver, DATABASE Vendor driver makes into Native calls
to communicate to DATABASE SERVER
About Option-2:
Much better than option-1 but still has the following
concerns:
1.
Still Database dependent
2.
As the database native drivers are generally in
c-language (i.e Non-java) we need to create the java application using native
methods (i.e: use JNI (Java Native Interface) which can have the following two
effects: (a) it can effect the platform
Independantcy. (b) Any bug in the native code can crash the JVM.
JVM: is a system that provides system level services for java
objects services means memory management etc.,
JRE:
Is a platform that provides runtime environment for java
objects (or) JRE as java object container (describes runtime environment) . A
initialized JVM, loaded with system libraries in JVM. A JVM instance loaded
with all the system libraries in referred as JRE.
Next is OPTION 3: ODBC
V �
s - M
@S
ly:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:.5in;
mso-add-space:auto;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
{mso-style-type:export-only;
margin-bottom:10.0pt;
line-height:115%;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:357395132;
mso-list-type:hybrid;
mso-list-template-ids:-490167928 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1
{mso-list-id:809712503;
mso-list-type:hybrid;
mso-list-template-ids:-144415500 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2
{mso-list-id:970284142;
mso-list-type:hybrid;
mso-list-template-ids:-2135386332 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l3
{mso-list-id:1299922716;
mso-list-type:hybrid;
mso-list-template-ids:-862265710 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
Basically Database servers include network protocols i.e
Messaging Protocol and Transportation.
Accessing the
Database server implementing the DATABASE
network PROTOCOLS:
The basic style of accessing the database server from our
application could be, by implementing the data base network protocol.
However
this includes lots of challenges:
·
Includes lots of low-level programming using
threads and socket APIs.
·
Development and testing time and cost increases
·
Requires expert resources (i.e:
Developers/testers)
·
Difficult/costlier for future extensions
·
Migration from one database to other requires
lots of re-implementation which again time consuming and costlier.
·
The data base network protocols are
intentionally not properly (detailed) documented, thus it becomes difficult to
understand the protocols and implement the logic. Results to an application
more errors prone.
Using DATA BASE Native Driver:
·
To solve the above listed problems data base
vendors introduced the client component that can reside in the client process
simplifying accessing the database server.
·
For example we have OCE (ORACLE CALL INTERFACE)
from ORACLE DATABASE SERVER.
·
These components are generally referred as ‘Data
Base Native Drivers’
·
The one major problem which is still existing
with this approach is the application becomes vendor dependent. Thus migrating
from one database to other still requires changes in the application.
Port means
receiver or transmission
Upto now we discussed on two options to communicate with
Data Base server.
Option 1:
is logic is implemented in Low level language which directly
making calls to DATABASE SERVER.
Lets find the option-1:
This is good but has the following concerns:
1.
Makes the application tightly bounded to
database i.e: Database dependent.
2.
Lots of
low level logics to implement
3.
Understanding the database network protocol is
difficult.
OPTION 2:
Is implemented logic in High level language, DATABASE API
call to Database Vendor driver, DATABASE Vendor driver makes into Native calls
to communicate to DATABASE SERVER
About Option-2:
Much better than option-1 but still has the following
concerns:
1.
Still Database dependent
2.
As the database native drivers are generally in
c-language (i.e Non-java) we need to create the java application using native
methods (i.e: use JNI (Java Native Interface) which can have the following two
effects: (a) it can effect the platform
Independantcy. (b) Any bug in the native code can crash the JVM.
JVM: is a system that provides system level services for java
objects services means memory management etc.,
JRE:
Is a platform that provides runtime environment for java
objects (or) JRE as java object container (describes runtime environment) . A
initialized JVM, loaded with system libraries in JVM. A JVM instance loaded
with all the system libraries in referred as JRE.
Next is OPTION 3: ODBC
h �
n d M
@S
connectivity.html">ODBC
(OPEN DATA BASE CONNECTIVITY)
V �
s - M
@S
ly:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:.5in;
mso-add-space:auto;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
{mso-style-type:export-only;
margin-bottom:10.0pt;
line-height:115%;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:357395132;
mso-list-type:hybrid;
mso-list-template-ids:-490167928 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1
{mso-list-id:809712503;
mso-list-type:hybrid;
mso-list-template-ids:-144415500 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2
{mso-list-id:970284142;
mso-list-type:hybrid;
mso-list-template-ids:-2135386332 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l3
{mso-list-id:1299922716;
mso-list-type:hybrid;
mso-list-template-ids:-862265710 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
Basically Database servers include network protocols i.e
Messaging Protocol and Transportation.
Accessing the
Database server implementing the DATABASE
network PROTOCOLS:
The basic style of accessing the database server from our
application could be, by implementing the data base network protocol.
However
this includes lots of challenges:
·
Includes lots of low-level programming using
threads and socket APIs.
·
Development and testing time and cost increases
·
Requires expert resources (i.e:
Developers/testers)
·
Difficult/costlier for future extensions
·
Migration from one database to other requires
lots of re-implementation which again time consuming and costlier.
·
The data base network protocols are
intentionally not properly (detailed) documented, thus it becomes difficult to
understand the protocols and implement the logic. Results to an application
more errors prone.
Using DATA BASE Native Driver:
·
To solve the above listed problems data base
vendors introduced the client component that can reside in the client process
simplifying accessing the database server.
·
For example we have OCE (ORACLE CALL INTERFACE)
from ORACLE DATABASE SERVER.
·
These components are generally referred as ‘Data
Base Native Drivers’
·
The one major problem which is still existing
with this approach is the application becomes vendor dependent. Thus migrating
from one database to other still requires changes in the application.
Port means
receiver or transmission
Upto now we discussed on two options to communicate with
Data Base server.
Option 1:
is logic is implemented in Low level language which directly
making calls to DATABASE SERVER.
Lets find the option-1:
This is good but has the following concerns:
1.
Makes the application tightly bounded to
database i.e: Database dependent.
2.
Lots of
low level logics to implement
3.
Understanding the database network protocol is
difficult.
OPTION 2:
Is implemented logic in High level language, DATABASE API
call to Database Vendor driver, DATABASE Vendor driver makes into Native calls
to communicate to DATABASE SERVER
About Option-2:
Much better than option-1 but still has the following
concerns:
1.
Still Database dependent
2.
As the database native drivers are generally in
c-language (i.e Non-java) we need to create the java application using native
methods (i.e: use JNI (Java Native Interface) which can have the following two
effects: (a) it can effect the platform
Independantcy. (b) Any bug in the native code can crash the JVM.
JVM: is a system that provides system level services for java
objects services means memory management etc.,
JRE:
Is a platform that provides runtime environment for java
objects (or) JRE as java object container (describes runtime environment) . A
initialized JVM, loaded with system libraries in JVM. A JVM instance loaded
with all the system libraries in referred as JRE.
Next is OPTION 3: ODBC
ODBC
(OPEN DATA BASE CONNECTIVITY)
V �
s - M
@S
ly:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:.5in;
mso-add-space:auto;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
{mso-style-type:export-only;
margin-bottom:10.0pt;
line-height:115%;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:357395132;
mso-list-type:hybrid;
mso-list-template-ids:-490167928 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1
{mso-list-id:809712503;
mso-list-type:hybrid;
mso-list-template-ids:-144415500 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2
{mso-list-id:970284142;
mso-list-type:hybrid;
mso-list-template-ids:-2135386332 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l3
{mso-list-id:1299922716;
mso-list-type:hybrid;
mso-list-template-ids:-862265710 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
Basically Database servers include network protocols i.e
Messaging Protocol and Transportation.
Accessing the
Database server implementing the DATABASE
network PROTOCOLS:
The basic style of accessing the database server from our
application could be, by implementing the data base network protocol.
However
this includes lots of challenges:
·
Includes lots of low-level programming using
threads and socket APIs.
·
Development and testing time and cost increases
·
Requires expert resources (i.e:
Developers/testers)
·
Difficult/costlier for future extensions
·
Migration from one database to other requires
lots of re-implementation which again time consuming and costlier.
·
The data base network protocols are
intentionally not properly (detailed) documented, thus it becomes difficult to
understand the protocols and implement the logic. Results to an application
more errors prone.
Using DATA BASE Native Driver:
·
To solve the above listed problems data base
vendors introduced the client component that can reside in the client process
simplifying accessing the database server.
·
For example we have OCE (ORACLE CALL INTERFACE)
from ORACLE DATABASE SERVER.
·
These components are generally referred as ‘Data
Base Native Drivers’
·
The one major problem which is still existing
with this approach is the application becomes vendor dependent. Thus migrating
from one database to other still requires changes in the application.
Port means
receiver or transmission
Upto now we discussed on two options to communicate with
Data Base server.
Option 1:
is logic is implemented in Low level language which directly
making calls to DATABASE SERVER.
Lets find the option-1:
This is good but has the following concerns:
1.
Makes the application tightly bounded to
database i.e: Database dependent.
2.
Lots of
low level logics to implement
3.
Understanding the database network protocol is
difficult.
OPTION 2:
Is implemented logic in High level language, DATABASE API
call to Database Vendor driver, DATABASE Vendor driver makes into Native calls
to communicate to DATABASE SERVER
About Option-2:
Much better than option-1 but still has the following
concerns:
1.
Still Database dependent
2.
As the database native drivers are generally in
c-language (i.e Non-java) we need to create the java application using native
methods (i.e: use JNI (Java Native Interface) which can have the following two
effects: (a) it can effect the platform
Independantcy. (b) Any bug in the native code can crash the JVM.
JVM: is a system that provides system level services for java
objects services means memory management etc.,
JRE:
Is a platform that provides runtime environment for java
objects (or) JRE as java object container (describes runtime environment) . A
initialized JVM, loaded with system libraries in JVM. A JVM instance loaded
with all the system libraries in referred as JRE.
Next is OPTION 3: ODBC
ODBC
(OPEN DATA BASE CONNECTIVITY)
No comments:
Post a Comment