Innan Upprätta JDBC-anslutning i Java (gränssnittet dvs ditt Java-program och baksidan dvs databasen) bör vi lära oss exakt vad en JDBC är och varför den kom till. Låt oss nu diskutera vad JDBC står för exakt och kommer att underlätta med hjälp av verkliga illustrationer för att få det att fungera.
Vad är JDBC?
JDBC är en akronym för Java Database Connectivity. Det är ett framsteg för ODBC (Open Database Connectivity). JDBC är en standard API-specifikation utvecklad för att flytta data från front-end till back-end. Detta API består av klasser och gränssnitt skrivna i Java. Det fungerar i princip som ett gränssnitt (inte det vi använder i Java) eller kanal mellan ditt Java-program och databaser, dvs det upprättar en länk mellan de två så att en programmerare kan skicka data från Java-kod och lagra den i databasen för framtida användning .
Illustration: Arbetar med JDBC samrelaterat med realtid
Varför uppstår JDBC?
Som tidigare sagts är JDBC ett framsteg för ODBC, att ODBC var plattformsberoende hade många nackdelar. ODBC API skrevs i C, C++, Python och Core Java och som vi vet ovan är språk (förutom Java och någon del av Python) plattformsberoende. För att ta bort beroendet utvecklades JDBC av en databasleverantör som bestod av klasser och gränssnitt skrivna i Java.
Steg för att ansluta Java Application med Database
Nedan följer stegen som förklarar hur du ansluter till Database i Java:
Steg 1 – Importera paketen
Steg 2 – Ladda drivrutinerna med hjälp av forName() metod
Steg 3 – Registrera förarna med DriverManager
Steg 4 – Upprätta en koppling använder klassobjektet Connection
Steg 5 – Skapa ett uttalande
Steg 6 – Utför frågan
Steg 7 – Stäng anslutningarna
Java-databasanslutning
Låt oss diskutera dessa steg i korthet innan vi implementerar genom att skriva lämplig kod för att illustrera anslutningssteg för JDBC.
annat om bash
Steg 1: Importera paketen
Steg 2: Laddar drivrutiner
För att börja med måste du först ladda drivrutinen eller registrera den innan du använder den i programmet. Registrering ska göras en gång i ditt program. Du kan registrera en förare på ett av två sätt som nämns nedan enligt följande:
2-A Class.forName()
Här laddar vi förarens klassfil i minnet vid körning. Inget behov av att använda nya eller skapa objekt. Följande exempel använder Class.forName() för att ladda Oracle-drivrutinen som visas nedan enligt följande:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager är en Java inbyggd klass med ett statiskt medlemsregister. Här kallar vi konstruktören av förarklassen vid kompilering. Följande exempel använder DriverManager.registerDriver() för att registrera Oracle-drivrutinen enligt nedan:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Steg 3: Upprätta en koppling använder sig av de Anslutningsklassobjekt
Efter att ha laddat drivrutinen, upprätta anslutningar enligt nedan enligt följande:
i sträng i java
Connection con = DriverManager.getConnection(url,user,password)>
- användare: U sername från vilket din SQL-kommandotolk kan nås.
- Lösenord: lösenord från vilket SQL-kommandotolken kan nås.
- med: Det är en referens till Connection-gränssnittet.
- URL : Uniform Resource Locator som skapas enligt nedan:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Där oracle är den databas som används, är tunn drivrutinen som används, @localhost är IP-adressen där en databas lagras, 1521 är portnumret och xe är tjänsteleverantören. Alla 3 parametrar ovan är av String-typ och ska deklareras av programmeraren innan funktionen anropas. Användning av detta kan hänvisas till att bilda den slutliga koden.
Steg 4: Skapa ett uttalande
När en anslutning har upprättats kan du interagera med databasen. Gränssnitten JDBCStatement, CallableStatement och PreparedStatement definierar metoderna som gör att du kan skicka SQL-kommandon och ta emot data från din databas.
Användningen av JDBC Statement är som följer:
Statement st = con.createStatement();>
Notera: Här är con en referens till anslutningsgränssnittet som användes i föregående steg.
Steg 5: Utför frågan
Nu kommer den viktigaste delen, dvs att köra frågan. Frågan här är en SQL-fråga. Nu vet vi att vi kan ha flera typer av frågor. Några av dem är följande:
- Frågan för att uppdatera/infoga en tabell i en databas.
- Frågan för att hämta data.
Metoden executeQuery() för Uttalande gränssnitt används för att utföra frågor för att hämta värden från databasen. Denna metod returnerar objektet för ResultSet som kan användas för att hämta alla poster i en tabell.
Metoden executeUpdate(sql-fråga) i Statement-gränssnittet används för att utföra frågor om uppdatering/infogning.
Pseudokod:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Här är sql SQL-fråga av typen String:
Java
konvertera från sträng till heltals java
// This code is for establishing connection with MySQL> // database and retrieving data> // from db Java Database connectivity> /*> > *1. import --->java.sql> > *2. load and register the driver --->com.jdbc.> > *3. create connection> > *4. create a statement> > *5. execute the query> > *6. process the results> > *7. close> > */> import> java.io.*;> import> java.sql.*;> class> GFG {> > public> static> void> main(String[] args)> throws> Exception> > {> > String url> > => 'jdbc: mysql://localhost:3306/table_name '> ; // table details> > String username => 'rootgfg'> ;> // MySQL credentials> > String password => 'gfg123'> ;> > String query> > => 'select *from students'> ;> // query to be run> > Class.forName(> > 'com.mysql.cj.jdbc.Driver'> );> // Driver name> > Connection con = DriverManager.getConnection(> > url, username, password);> > System.out.println(> > 'Connection Established successfully'> );> > Statement st = con.createStatement();> > ResultSet rs> > = st.executeQuery(query);> // Execute query> > rs.next();> > String name> > = rs.getString(> 'name'> );> // Retrieve name from db> > System.out.println(name);> // Print result on console> > st.close();> // close statement> > con.close();> // close connection> > System.out.println(> 'Connection Closed....'> );> > }> }> |
>
>
Produktion :
Steg 6: Stänga anslutningarna
Så äntligen har vi skickat data till den angivna platsen och nu är vi på väg att slutföra vår uppgift. Genom att stänga anslutningen stängs objekt av Statement och ResultSet automatiskt. Metoden close() för Connection-gränssnittet används för att stänga anslutningen. Det visas nedan enligt följande:
con.close();>
Exempel:
Java
// Java Program to Establish Connection in JDBC> // Importing database> import> java.sql.*;> // Importing required classes> import> java.util.*;> // Main class> class> Main {> > // Main driver method> > public> static> void> main(String a[])> > {> > // Creating the connection using Oracle DB> > // Note: url syntax is standard, so do grasp> > String url => 'jdbc:oracle:thin:@localhost:1521:xe'> ;> > // Username and password to access DB> > // Custom initialization> > String user => 'system'> ;> > String pass => '12345'> ;> > // Entering the data> > Scanner k => new> Scanner(System.in);> > System.out.println(> 'enter name'> );> > String name = k.next();> > System.out.println(> 'enter roll no'> );> > int> roll = k.nextInt();> > System.out.println(> 'enter class'> );> > String cls = k.next();> > // Inserting data using SQL query> > String sql => 'insert into student1 values(''> + name> > +> '','> + roll +> ',''> + cls +> '')'> ;> > // Connection class object> > Connection con => null> ;> > // Try block to check for exceptions> > try> {> > // Registering drivers> > DriverManager.registerDriver(> > new> oracle.jdbc.OracleDriver());> > // Reference to connection interface> > con = DriverManager.getConnection(url, user,> > pass);> > // Creating a statement> > Statement st = con.createStatement();> > // Executing query> > int> m = st.executeUpdate(sql);> > if> (m ==> 1> )> > System.out.println(> > 'inserted successfully : '> + sql);> > else> > System.out.println(> 'insertion failed'> );> > // Closing the connections> > con.close();> > }> > // Catch block to handle exceptions> > catch> (Exception ex) {> > // Display message when exceptions occurs> > System.err.println(ex);> > }> > }> }> |
>
jlist
>
Utdata efter import av data i databasen: