Sunday, August 12, 2018

JDBC(ஜெடிபிசி) என்னும் ஜாவா டேட்டாபேஸ் கனக்டிவிட்டி:


 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 முக்கிய இரு பேக்கேஜுகள்:.
  1. java.sql
  2. 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
ஜாவாவிலிருந்து டேட்டாபேஸை கையாளும் ஐந்து படிகள்.
  1. Register the Driver
  2. Create a Connection
  3. Create SQL Statement
  4. Execute SQL Statement
  5. Closing the connection
steps to connect to database


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
  1. control panel செல்லவும்
  2.  
  3.  
  1. பிறகு Administrative tools செல்லவும்
  2.  
  1. Data Source(ODBC) என்பதை தேர்வு செய்யவும்.
  1. Add new DSN name, select add
  2.  
  3.  
  1. Access driver என்பதை list லிருந்து செலெக்ட் செய்து finish செய்யவும்.
  2.  
  3.  
  4.  
  1. 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
ஆரக்கிள் டேட்டாபேஸை ஜாவாவுடன் கனக்ட் செய்ய உதவும் படிக:
  1. Driver Class லோட் செய்யவும்: oracle.jdbc.driver.OracleDriver and Class.forName("oracle.jdbc.driver.OracleDriver") method is used to load the driver class for Oracle database.
  2. பிறகு கனக்சன் உருவாக்கவும்.
  3.  ஆரக்கிளுக்கான கனக்சன் url:
  4.  
  5.  
  6.  
மேலும் கனக்சன் உருவாவதற்கு user name மற்றும் password கொடுக்க வேண்டும்.
  1. Loading jar file:  ஜாவா அப்ளிகேசனை ஆரக்கிள் உடன் கனக்ட் செய்ய பின் வரு. ம் jar file தேவைப்படும்.
  2. 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:
  1. Load Driver Class: இதற்கான டிரைவர் com.mysql.jdbc.Driver ஆகும் மேலும் Class.forName("com.mysql.jdbc.Driver") method ஆனது  இதற்கு உதவுகின்றது..
  2. Create Connection: MySQL கனக்சன் url.
  3.  
  4.  
  5.  
மேலும் user name, password ஆகியவை தேவைப்படும்..
    1. Loading jar file: இதற்கு கீழ்க் கண்ட jar file தேவைப்படுகின்றது mysql-connector.jar file.
    2. இந்த ஃபைலை இணையத்திலிருந்து டவுன்லோட் செய்து கொள்ளலாம்
    3. மேற்படி 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();
}
}
}
-முத்து கார்த்திகேயன்,மதுரை

ads Udanz

No comments:

Post a Comment