Før Etablering af JDBC-forbindelse i Java (frontenden, dvs. dit Java-program og bagenden, dvs. databasen), bør vi lære præcis, hvad en JDBC er, og hvorfor den opstod. Lad os nu diskutere, hvad JDBC præcis står for og vil lette ved hjælp af illustrationer fra det virkelige liv for at få det til at fungere.
Hvad er JDBC?
JDBC er et akronym for Java Database Connectivity. Det er et fremskridt for ODBC (Open Database Connectivity). JDBC er en standard API-specifikation udviklet til at flytte data fra front-end til back-end. Denne API består af klasser og grænseflader skrevet i Java. Det fungerer dybest set som en grænseflade (ikke den vi bruger i Java) eller kanal mellem dit Java-program og databaser, dvs. det etablerer en forbindelse mellem de to, så en programmør kan sende data fra Java-kode og gemme dem i databasen til fremtidig brug .
byer i australien
Illustration: Arbejder med JDBC i sam-relation med realtid
Hvorfor JDBC opstår?
Som tidligere fortalt er JDBC et fremskridt for ODBC, at ODBC var platformafhængig havde mange ulemper. ODBC API blev skrevet i C, C++, Python og Core Java, og som vi ved ovenfor er sprog (undtagen Java og en del af Python) platformafhængige. Derfor for at fjerne afhængighed blev JDBC udviklet af en databaseleverandør, som bestod af klasser og grænseflader skrevet i Java.
Trin til at forbinde Java-applikation med database
Nedenfor er de trin, der forklarer, hvordan du opretter forbindelse til databasen i Java:
Trin 1 – Importer pakkerne
Trin 2 – Indlæs driverne ved hjælp af forName() metode
Trin 3 – Registrer chaufførerne ved hjælp af DriverManager
Trin 4 – Etabler en forbindelse ved hjælp af Connection-klasseobjektet
Trin 5 – Lav en erklæring
Trin 6 – Udfør forespørgslen
Trin 7 – Luk tilslutningerne
Java-databaseforbindelse
Lad os diskutere disse trin kort før implementering ved at skrive passende kode for at illustrere tilslutningstrin til JDBC.
Trin 1: Importer pakkerne
Trin 2: Indlæsning af drivere
For at begynde med skal du først indlæse driveren eller registrere den, før du bruger den i programmet. Tilmelding skal ske én gang i dit program. Du kan registrere en chauffør på en af de to måder, der er nævnt nedenfor, som følger:
2-A Class.forName()
Her indlæser vi førerens klassefil i hukommelsen ved kørsel. Intet behov for at bruge nye eller oprette objekter. Følgende eksempel bruger Class.forName() til at indlæse Oracle-driveren som vist nedenfor som følger:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager er en indbygget Java-klasse med et statisk medlemsregister. Her kalder vi konstruktøren af driverklassen på kompileringstidspunktet. Følgende eksempel bruger DriverManager.registerDriver() til at registrere Oracle-driveren som vist nedenfor:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Trin 3: Etabler en forbindelse ved brug af det Forbindelsesklasseobjekt
Efter indlæsning af driveren skal du oprette forbindelser som vist nedenfor som følger:
Connection con = DriverManager.getConnection(url,user,password)>
- bruger: U sernavn, hvorfra du kan få adgang til din SQL-kommandoprompt.
- adgangskode: adgangskode, hvorfra der kan tilgås SQL-kommandoprompten.
- med: Det er en reference til Connection-grænsefladen.
- URL : Uniform Resource Locator, som er oprettet som vist nedenfor:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Hvor oracle er den anvendte database, er tynd den anvendte driver, @localhost er IP-adressen, hvor en database er gemt, 1521 er portnummeret, og xe er tjenesteudbyderen. Alle 3 ovenstående parametre er af String-type og skal deklareres af programmøren, før funktionen kaldes. Brug af dette kan henvises til at danne den endelige kode.
Trin 4: Opret en erklæring
Når en forbindelse er etableret, kan du interagere med databasen. JDBCStatement-, CallableStatement- og PreparedStatement-grænsefladerne definerer de metoder, der gør det muligt for dig at sende SQL-kommandoer og modtage data fra din database.
Brug af JDBC-erklæring er som følger:
Statement st = con.createStatement();>
Bemærk: Her er con en reference til forbindelsesgrænsefladen brugt i det foregående trin.
deterministiske endelige automater
Trin 5: Udfør forespørgslen
Nu kommer den vigtigste del, nemlig at udføre forespørgslen. Forespørgslen her er en SQL-forespørgsel. Nu ved vi, at vi kan have flere typer forespørgsler. Nogle af dem er som følger:
- Forespørgslen til opdatering/indsættelse af en tabel i en database.
- Forespørgslen til at hente data.
executeQuery()-metoden for Statement interface bruges til at udføre forespørgsler om at hente værdier fra databasen. Denne metode returnerer objektet i ResultSet, der kan bruges til at hente alle poster i en tabel.
executeUpdate(sql-forespørgsel)-metoden i Statement-grænsefladen bruges til at udføre forespørgsler om opdatering/indsættelse.
Pseudokode:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Her er sql SQL-forespørgsel af typen String:
Java
java while loop
// 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....'> );> > }> }> |
>
>
string.format java
Produktion :
Trin 6: Lukning af forbindelserne
Så endelig har vi sendt dataene til det angivne sted, og nu er vi på nippet til at fuldføre vores opgave. Ved at lukke forbindelsen lukkes objekter af Statement og ResultSet automatisk. Close()-metoden for Connection-grænsefladen bruges til at lukke forbindelsen. Det er vist nedenfor som følger:
con.close();>
Eksempel:
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);> > }> > }> }> |
>
stak i java
>
Output efter import af data i databasen: