Java >> Java tutorial >  >> Tag >> Jdbc

Hvordan opretter man forbindelse til en database i Java? – JDBC Tutorial

Java, som er et af de mest fremtrædende programmeringssprog, giver omfattende support til databaser. Det hjælper os med at oprette forbindelse til forskellige databaser gennem JDBC (Java Database Connectivity). I denne artikel vil jeg fortælle dig, hvordan du opretter forbindelse til en database og udfører forespørgsler ved hjælp af JDBC.

Nedenstående emner er dækket i denne artikel:

  • Introduktion til JDBC
  • Almindelige JDBC-komponenter
  • Trin til at oprette JDBC-applikation
  • JDBC-forbindelser

Introduktion til JDBC

JDBC er en af ​​standard Java API til databaseuafhængig forbindelse mellem Java programmeringssproget og en lang række databaser. Denne API lader dig kode adgangsanmodningserklæringerne i Structured Query Language (SQL). Dette indebærer hovedsageligt at åbne en forbindelse, oprette en SQL-database, udføre SQL-forespørgsler og derefter ankomme til outputtet.

JDBC API kan bruges til at få adgang til tabeldata gemt i enhver relationel database. Hermed kan du opdatere, gemme, hente og slette data fra databaserne. Det ligner Open Database Connectivity (ODBC) leveret af Microsoft.

For en bedre forståelse af arbejdet med JDBC, lad os dykke dybere ned i emnet og forstå den arkitektur, der ligger bag Java Database Connectivity.

Almindelige JDBC-komponenter

JDBC API giver følgende grænseflader og klasser −

  • DriverManager: Dette bruges hovedsageligt til at administrere en liste over databasedrivere. Driveren, der genkender en bestemt underprotokol, vil blive brugt til at etablere en databaseforbindelse.

  • Driveren er en grænseflade, der håndterer kommunikationen med databaseserveren. Det abstraherer også de detaljer, der er knyttet, mens du arbejder med Driver-objekter.

  • En forbindelse er en grænseflade, der består af alle de metoder, der kræves for at oprette forbindelse til en database. Forbindelsesobjektet omhandler databasens kommunikationsfunktioner. kontekst.

Lad os nu gå videre til det næste emne og se på de nødvendige trin for at oprette en JDBC-applikation.

Trin til at oprette JDBC-applikation

For at oprette en JDBC-applikation skal du følge nogle få trin. Lad os se, hvad de er.

  1. Importer pakkerne: Du skal inkludere alle de pakker, der indeholder de JDBC-klasser, der er nødvendige for databaseprogrammering. Oftest ved hjælp af import java.sql.* vil være tilstrækkeligt.

  2. Registrer JDBC-driveren: Her skal du initialisere en driver, så du kan åbne en kommunikationskanal med databasen.

  3. Åbn en forbindelse: Her kan du bruge getConnection() metode til at oprette et forbindelsesobjekt, som repræsenterer en fysisk forbindelse med databasen.

  4. Udfør en forespørgsel: Dette kræver faktisk at bruge et objekt af typen Statement til at bygge og sende en SQL-sætning til databasen.

  5. Udtræk data fra resultatsættet: Det foreslås, at du bruger den passende getXXX() metode til at hente data fra resultatsættet.

  6. Ryd op i miljøet: Her er det vigtigt eksplicit at lukke alle databaseressourcer i forhold til at stole på JVM's affaldsindsamling.

Nu som du har set forskellige trin involveret i at oprette en JDBC-applikation, lad os se en eksempelkode til at oprette en database og etablere en forbindelse.

package Edureka;
import java.sql.*;
import java.sql.DriverManager;
public class Example {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,"root","");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close()
}catch(SQLException se2){
}// nothing can be done
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
} // end Example

Ovenstående kode opretter en tabel i din lokale værtsdatabase. For at indsætte værdierne i den oprettede database, kan du henvise til nedenstående kode. Jeg vil kun skrive koden til trin 4. Resten af ​​koden forbliver den samme som ovenfor.

//STEP 4: Execute a query
System.out.println("Creating table in given database...");
stmt = conn.createStatement();
String sql = "CREATE TABLE EMPLOYEES " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
System.out.println("Inserting records into the table...");
stmt =conn.createStatement();
String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";
stmt.executeUpdate(sql);
sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";
stmt.executeUpdate(sql);
System.out.println("Inserted records into the table...");

Så sådan kan du oprette forbindelse til databasen og indsætte værdier i tabellerne. Lad os nu gå videre og forstå forskellige JDBC-drivertyper

JDBC-drivertyper

JDBC-drivere bruges til at implementere de definerede grænseflader i JDBC API, til at interagere med databaseserveren. Grundlæggende en JDBC-driver gør tre ting, og de er som følger:
1. Etablerer en forbindelse med en datakilde.
2. Det vil sende forespørgsler og opdatere erklæringer til datakilden.
3. Til sidst behandler den resultaterne.

For eksempel hjælper JDBC-drivere dig med at åbne en databaseforbindelse for at interagere med den ved at sende SQL- eller databasekommandoer. Hvis du ønsker at vide mere om typer af JDBC-drivere, kan du henvise til denne artikel om JDBC-drivere.

Lad os nu gå videre og forstå JDBC-forbindelser.

JDBC-forbindelser

  • Importer JDBC-pakker: Tilføj import sætninger til dit Java-program for at importere nødvendige klasser i din Java-kode.

  • Registrer JDBC-driver:I t hans trin indlæser JVM til den ønskede driverimplementering i hukommelsen, så den kan opfylde JDBC-anmodningerne. Der er 2 metoder til at registrere en chauffør.

    • Den mest egnede metode til at registrere en driver er at bruge Javas forName() metode til dynamisk at indlæse driverens klassefil i hukommelsen, som automatisk registrerer den. Denne metode er velegnet, da den giver dig mulighed for at gøre driverregistreringen konfigurerbar og bærbar. Tag et kig på nedenstående kode:

      try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      }
      catch(ClassNotFoundException ex) 
      System.out.println("Error: unable to load driver class!");
      System.exit(1);
      }
    • Den anden tilgang, du kan bruge til at registrere en driver, er at bruge den statiske registerDriver() metode.

      try {
      Driver myDriver = new oracle.jdbc.driver.OracleDriver();
      DriverManager.registerDriver( myDriver );
      }
      catch(ClassNotFoundException ex)
      {
      System.out.println("Error: unable to load driver class!");
      System.exit(1);
      }
  • Du skal bruge registerDriver() metode, hvis du bruger en ikke-JDK-kompatibel JVM, såsom den, der leveres af Microsoft. Her kræver hver formular en database-URL .

  • Formulering af databasewebadresse: URL-formulering er nødvendig for at oprette en korrekt formateret adresse, der peger på den database, som du vil oprette forbindelse til. Når du har indlæst driveren, kan du oprette en forbindelse ved hjælp af DriverManager.getConnection() metode. DriverManager.getConnection() metoder er-

    • getConnection(String url)

    • getConnection(String url, Properties prop)

    • getConnection(String url, String user, String password)

  • Opret et forbindelsesobjekt

Du kan oprette en forbindelse ved at bruge databasens URL, brugernavn og adgangskode og også bruge egenskabsobjektet.

  • Luk

Til sidst, for at afslutte databasesessionen, skal du lukke alle databaseforbindelserne. Men hvis du glemmer det, vil Javas skraldemand lukke forbindelsen, når den rydder op i uaktuelle genstande.

conn.close(); // Used to close the connection

Det handlede om Java Database Connectivity. Hvis du ønsker at vide mere om JDBC, kan du henvise til denne artikel om Advanced Java Tutorial. Dette bringer os til slutningen af ​​artiklen om 'hvordan man opretter forbindelse til en database'. Jeg håber, jeg har kastet lidt lys over din viden om JDBC.

Tjek Java Online Training af Edureka, en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med et pensum, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel "hvordan du opretter forbindelse til en database", så vender vi tilbage til dig så hurtigt som muligt.


Java tag