Java Database Connectivity(JDBC) என்பது ஜாவாவை
டேட்டாபேஸுடன் இணைக்க உதவும் Application
Programming Interface(API) ஆகும்.
JDBC
என்பது
oracle,mysql, access, ms sqlserver போன்ற டேட்டா பேஸுடன் தொடர்பு கொள்ள உதவுகின்றது.
JDBC-யை ஜாவா நிரலுக்கும் டேட்டாபேஸுக்கம்
இடையே உள்ள இடை முகப்பு என்றும் கூறலாம். இது sql கட்டளை பிராசஸ் செய்து தீர்வுகளை
பெற உதவுகின்றது.
What's
new in JDBC 4.0
JDBC 4.0 என்பது புதிய விவரக்குறிப்பாகும்..
இது பின் வரும் புதிய அம்சம்களை கொண்டுள்ளது
·
கனக்சன் மேனேஜ்மெண்ட்
- டிரைவர் இன்டெர்ஃபேஸை தானாக லோட் செய்கின்றது .
- சிறந்தexception handling
- பெரிய ஆப்ஜெக்டுகளை ஆதரிக்கின்றது.
- Sql-ல் Annotation.
JDBC
Driver
கீழே உள்ளவை JDBC Driver –ன் வகைகளின் லிஸ்ட் ஆகும்.
·
Type-1
Driver
or JDBC-ODBC bridge
- Type-2 Driver or Native API Partly Java Driver
- Type-3 Driver or Network Protocol Driver
- Type-4 Driver or Thin Driver
JDBC-ODBC
bridge
Type-1 Driver ஆனது
jdbc-க்கும் அதர் டேட்டாபேஸ் கனக்டிவிட்டிக்கும் இடையே உள்ள பாலம். இந்த டிரைவர்
jdbc அழைப்புகளை odbc அழைப்புகளாக மாற்றுகின்றது. பின் ODBC க்கு வேண்டுகோள்களை
திசைமாற்றி அனுப்புகின்றது.
Advantage
- உபயோக்கிக எளிது.
- ODBC ஆதரிக்கும் எல்லா டேட்டா பேஸ்களையும் எளிதாக தொடர்பு கொள்வது எளிது.
Disadvantage
- இயங்குதல் மெதுவாக இருக்கின்றது.
- ODBC –யைச் சார்ந்துள்ளது.
- ODBC அழைப்புகளுக்கு java Native Interface(JNI)-யை உபயோக்கின்றது.
Native
API Driver
இந்த வகை டிரைவர் java native interface(JNI) –யை
பயன்படுத்துகின்றது. நேடிவ் கிளையண்ட் ஆனது வழக்கமாக C மற்றும் C++ யை பயன்படுத்தி
எழுதப்படுகின்றது
Advantage
- Type-1 Driver-விட வேகம்
- Contains additional featuresமேலும் முக்கியமான அம்சங்களைக் கொண்டுள்ளது..
Disadvantage
- நேட்டிவ் லைப்ரரி தேவைப்படுகின்றது.
- அதிக பயன்பாட்டுச் செலவுகள்
Network
Protocol Driver
இந்த டிரைவர் JDBC அழைப்புகளை டேட்டாபேஸ் சர்வர் சாராத மிட்டில்வேர்
சர்வர் அழைப்புகளாக
மாற்றியமைக்கின்றது.அதற்கடுத்து மிட்டில்வேர் சர்வர் JDBC அழைப்புகளை டேட்டாபேஸ்
அழைப்புகளாக மாற்றுகின்றது
Advantage
- நேட்டிவ் லைப்ரரி தேவையில்லை
- டேட்டாபேஸ் சாராதது
- ஒரு டேட்டாபேஸில் இருந்து மற்ற் டேட்டாபேஸிற்கு ஸ்விட்ச் ஓவர் செய்ய முடிகின்றது
- Disadvantage
- மெதுவாக இயங்குகின்றது.
Thin
Driver
இந்த டிரைவர் ப்யூர் ஜாவா டிரைவர் ஆகும்.ஏனெனில்
டேட்டாபேஸ்களுடன் நேரடியாக தொடர்பு கொள்கின்றது.
Advantage
- நேடிவ் லைப்ரரி தேவையில்லை..
- மிட்டில்வேர் சர்வர் தேவையில்லை.
- மற்ற டிரைவர்களை விட சிறப்பாக செயல்படுகின்றது
Disadvantage
- மெதுவாக இயங்குகின்றது.
JDBC
4.0 API
JDBC 4.0 API முக்கிய இரு பேக்கேஜுகள்:.
- java.sql
- javax.sql
java.sql
package
இந்த பேக்கேஜ் ஆனது எஸ்க்யூஎல் கொரிகளை பிராசஸ் செய்ய உதவும்
Class மற்றும் interface களக் கொண்டுள்ளது.
Important
classes and interface of java.sql package
classes/interface
|
Description
|
java.sql.BLOB
|
BLOB(Binary
Large Object) SQL type என்பதை
ஆதரிக்கின்றது..
|
java.sql.Connection
|
குறிப்பிட்ட
டேட்டா பேசுடன் கனக்ட் செய்ய உதவுகின்றது.
|
java.sql.CallableStatement
|
stored
procedures யை ஆதரிக்கின்றது
|
java.sql.CLOB
|
CLOB(Character
Large Object) SQL type என்பதை ஆதரிக்கின்றது.
|
java.sql.Date
|
Date
SQL type யை ஆதரிக்கின்றது.
|
java.sql.Driver
|
DriverManager-ன் இன்ஸ்டன்சை
உருவாக்க உதவுகின்றது..
|
java.sql.DriverManager
|
database
drivers என்பதை நிர்வகிக்கின்றது..
|
java.sql.PreparedStatement
|
parameterized
query என்பதை நிர்வகிக்கின்றது
|
java.sql.ResultSet
|
டேட்டா
பேஸ் ரிசல்டை ஒவ்வொரு ரோவாக பெற உதவுகின்றது
|
java.sql.Savepoint
|
transaction.-ல் savepoint என்பதை குறிப்பிடஉதவுகின்றது
|
java.sql.SQLException
|
எல்லா
JDBC related exception களையுன்
உள்ளடக்கியுள்ளது.
|
java.sql.Statement
|
இந்த
interface ஆனது எல்லா SQL statements. களையும்
நிர்வகிக்கின்றது
|
javax.sql
package
இது JDBC extension API என அறியப்படுகின்றது. சர்வர் சைட்
டேட்டாவை அணுக உதவுகின்றது.
Important
classes and interface of javax.sql package
classes/interface
|
Description
|
javax.sql.ConnectionEvent
|
occurence
of event. பற்றிய தகவலை தருகின்றது
|
javax.sql.ConnectionEventListener
|
Used
to register event generated by PooledConnection
object. உருவாக்கிய ஈவண்டை ரிஜிஸ்டர் செய்ய உதவுகின்றது
|
javax.sql.DataSource
|
DataSource
interface என்பதை
ரெப்பரசெண்ட் செய்கின்றது.
|
javax.sql.PooledConnection
|
connection
pools என்பதை நிர்வாக்கின்றது.
|
Steps
to connect a Java Application to Database
ஜாவாவிலிருந்து டேட்டாபேஸை கையாளும் ஐந்து படிகள்.
- Register the Driver
- Create a Connection
- Create SQL Statement
- Execute SQL Statement
- Closing the connection
Register
the Driver
Class.forName() என்பது டிரைவரை
லோட் செய்கின்றது.
JDBC-ODBC Driver சான்று
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Create
a Connection
getConnection() என்கின்ற
DriverManager கிளாஸின் மெத்தட் கனக்சனை உருவாக்க உதவுகின்றது.
Syntax
getConnection(String
url)
getConnection(String
url, String username, String password)
getConnection(String
url, Properties info)
Oracle Driver உடன் கனக்ட் செய்தல் சான்று:
Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","username","password");
Create
SQL Statement
createStatement()மெத்தட் நடப்பு
கனக்சன் மீது sqlstatement உருவாக்கப் பயன்படுகின்றது.
Syntax
public Statement
createStatement() throws SQLException
SQL statement சான்று:
Statement
s=con.createStatement();
Execute
SQL Statement
executeQuery() என்கின்ற Statement interface ஆனது SQL
statements. யை execute செய்ய உதவுகின்றது.
Syntax
public ResultSet
executeQuery(String query) throws SQLException
சான்று
ResultSet
rs=s.executeQuery("select * from user");
while(rs.next())
{
System.out.println(rs.getString(1)+"
"+rs.getString(2));
}
Closing
the connection
SQL statement ஆனதை இயக்கி
முடித்தவுடன் கனக்சனை close செய்ய வேண்டும். close() என்கின்ற Connection interface மெத்தட் இதற்கு
பயன்படுகின்றது.
Syntax
public void close()
throws SQLException
சான்று:
con.close();
Connecting
to Access Database using Type-1 Driver
Java application ஆனதை Access
database உடன் கனக்ட் செய்ய JDBC-ODBC
Bridge(type-1) Driverபயன்படுகின்றது.
படிகள்:
Create
DSN Name
- control panel செல்லவும்
- பிறகு Administrative tools செல்லவும்
- Data Source(ODBC) என்பதை தேர்வு செய்யவும்.
- Add new DSN name, select add
- Access driver என்பதை list லிருந்து செலெக்ட் செய்து finish செய்யவும்.
- DSN name கொடுத்து ok என்பதை கிளிக் செய்யவும்.
செலெக்ட் பட்டனை தேர்வு செய்து தேவையான டேட்டா பேஸ் பெய்ரை
தேர்வு செய்யவும்.
சான்று:
உதாரண்மாக ஆக்சஸ் டேட்டாபேஸில் student என்கின்ற டேபிள்
இருக்கின்றது. அதில் sid, name என்கின்ற இரண்டு column இருக்கின்றது. We suppose
that you have created a student
table with sid and name column name in access database.
import java.sql.*;
class Test
{
public static void main(String []args)
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:Test", "", "");
Statement s=con.createStatement(); //creating statement
ResultSet rs=s.executeQuery("select
* from student"); //executing
statement
while(rs.next()){
System.out.println(rs.getInt(1)+"
"+rs.getString(2));
}
con.close(); //closing connection
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Connecting
to Oracle Database using Thin Driver
ஆரக்கிள் டேட்டாபேஸை ஜாவாவுடன் கனக்ட் செய்ய உதவும் படிக:
- Driver Class லோட் செய்யவும்: oracle.jdbc.driver.OracleDriver and Class.forName("oracle.jdbc.driver.OracleDriver") method is used to load the driver class for Oracle database.
- பிறகு கனக்சன் உருவாக்கவும்.
- ஆரக்கிளுக்கான கனக்சன் url:
-
மேலும் கனக்சன் உருவாவதற்கு user name மற்றும் password
கொடுக்க வேண்டும்.
- Loading jar file: ஜாவா அப்ளிகேசனை ஆரக்கிள் உடன் கனக்ட் செய்ய பின் வரு. ம் jar file தேவைப்படும்.
- ojdbc14.jar file.
இதை
இணையத்திலிருந்து டவுன் லோட் செய்து கொள்ளலாம்.
பிறகு அதை C:\Program
Files\Java\jre7\lib\ext என்கின்ற ஃபோல்டரில் காப்பி செய்யவும்.
சான்று
Create
a table in Oracle Database
create table
Student(sid number(10),sname varchar2(20));
டேட்டா
இன்செர்ட் செய்தல்
insert into Student
values(101,'adam');
insert into Student
values(102,'abhi');
ஸ்டுடெண்ட்
டேபிளில் இருந்து டேட்டாவை பெறுதல்.
import java.sql.*;
class Test
{
public static void
main(String []args)
{
try{
//Loading driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//creating connection
Connection con =
DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:XE","username","password");
Statement
s=con.createStatement(); //creating
statement
ResultSet
rs=s.executeQuery("select * from Student"); //executing statement
while(rs.next()){
System.out.println(rs.getInt(1)+"
"+rs.getString(2));
}
con.close(); //closing connection
}catch(Exception e){
e.printStacktrace();
}
}
}
101 adam 102 abhi
java
application டேபிளில் இன்செர்ட் செய்தல்.
import java.sql.*;
class Test
{
public static void
main(String []args)
{
try{
//Loading driver...
Class.forName("oracle.jdbc.driver.OracleDriver");
//creating
connection...
Connection con =
DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:XE","username","password");
PreparedStatement
pst=con.prepareStatement("insert into Student values(?,?)");
pst.setInt(1,104);
pst.setString(2,"Alex");
pst.executeUpdate();
con.close(); //closing connection
}catch(Exception e){
e.printStacktrace();
}
}
}
ஜாவாவை
mysql உடன் கனக்ட் செய்தல்.
Steps:
- Load Driver Class: இதற்கான டிரைவர் com.mysql.jdbc.Driver ஆகும் மேலும் Class.forName("com.mysql.jdbc.Driver") method ஆனது இதற்கு உதவுகின்றது..
- Create Connection: MySQL கனக்சன் url.
மேலும் user name, password ஆகியவை தேவைப்படும்..
- Loading jar file: இதற்கு கீழ்க் கண்ட jar file தேவைப்படுகின்றது mysql-connector.jar file.
- இந்த ஃபைலை இணையத்திலிருந்து டவுன்லோட் செய்து கொள்ளலாம்
- மேற்படி jar file ஆனதை C:\Program Files\Java\jre7\lib\ext ஃபோல்டரில் காப்பி செய்து கொள்ளவும்.
Example
Create
a table in MySQL Database
create table
Student(sid int(10),name varchar(20));
Insert
some record into the table
insert into Student
values(102,'adam');
insert into Student
values(103,'abhi');
Accessing
record from Student table in Java application
import java.sql.*;
class Test
{
public static void
main(String []args)
{
try{
//Loading driver
Class.forName("com.mysql.jdbc.Driver");
//creating connection
Connection con =
DriverManager.getConnection
("jdbc:mysql:/
/localhost:3306/test","username","password");
Statement s =
con.createStatement(); //creating
statement
ResultSet rs =
s.executeQuery("select * from Student"); //executing statement
while(rs.next()){
System.out.println(rs.getInt(1)+"
"+rs.getString(2));
}
con.close(); //closing connection
}catch(Exception e){
e.printStacktrace();
}
}
}
102 adam 103 abhi
java
application மூலம் டேட்டாவை இன்செர்ட் செய்தல்:
import
java.sql.*;
class Test
{
public static void
main(String []args)
{
try{
//Loading driver
Class.forName("com.mysql.jdbc.Driver");
//creating connection
Connection con =
DriverManager.getConnection
("jdbc:mysql:/
/localhost:3306/test","username","password");
PreparedStatement
pst=con.prepareStatement("insert into Student values(?,?)");
pst.setInt(1,104);
pst.setString(2,"Alex");
pst.executeUpdate();
con.close(); //closing connection
}catch(Exception e){
e.printStacktrace();
}
}
}
-முத்து
கார்த்திகேயன்,மதுரை