logo

Establiment de la connexió JDBC a Java

Abans Establiment de la connexió JDBC a Java (el front end, és a dir, el vostre programa Java i el backend, és a dir, la base de dades) hauríem d'aprendre què és precisament un JDBC i per què va néixer. Ara anem a discutir què significa exactament JDBC i es facilitarà amb l'ajuda de la il·lustració de la vida real perquè funcioni.

Què és JDBC?

JDBC és l'acrònim de Java Database Connectivity. És un avenç per a ODBC (Open Database Connectivity). JDBC és una especificació d'API estàndard desenvolupada per moure les dades de la part frontal a la part posterior. Aquesta API consta de classes i interfícies escrites en Java. Bàsicament actua com a interfície (no la que utilitzem a Java) o canal entre el vostre programa Java i les bases de dades, és a dir, estableix un enllaç entre ambdues perquè un programador pugui enviar dades del codi Java i emmagatzemar-les a la base de dades per a un ús futur. .



Il·lustració: Funcionament de JDBC co-relacionant amb temps real

funcionament_en_temps_real_de_JDBC

Per què apareix JDBC?

Com es va dir anteriorment, JDBC és un avenç per a ODBC, el fet que ODBC depengués de la plataforma tenia molts inconvenients. L'API ODBC es va escriure en C, C++, Python i Core Java i, com sabem anteriorment, els llenguatges (excepte Java i alguna part de Python) depenen de la plataforma. Per tant, per eliminar la dependència, JDBC va ser desenvolupat per un proveïdor de bases de dades que constava de classes i interfícies escrites en Java.



Passos per connectar l'aplicació Java amb la base de dades

A continuació es mostren els passos que expliquen com connectar-se a la base de dades a Java:

Pas 1 - Importar els paquets
Pas 2 – Carregueu els controladors mitjançant el mètode forName().
Pas 3 – Registrar els conductors utilitzant DriverManager
Pas 4 - Establir una connexió utilitzant l'objecte de classe Connection
Pas 5 - Crear una declaració
Pas 6 - Executar la consulta
Pas 7 – Tanqueu les connexions

Connectivitat de bases de dades Java

Establiment-JDBC-Connexió-a-Java



Parlem breument d'aquests passos abans d'implementar-los escrivint el codi adequat per il·lustrar els passos de connectivitat per a JDBC.

Pas 1: Importa els paquets

Pas 2: Carregant els controladors

Per començar, primer heu de carregar el controlador o registrar-lo abans d'utilitzar-lo al programa. La inscripció s'ha de fer una vegada al vostre programa. Podeu registrar un conductor d'una de les dues maneres que s'esmenten a continuació:

2-A Class.forName()

Aquí carreguem el fitxer de classe del controlador a la memòria en temps d'execució. No cal utilitzar nous o crear objectes. L'exemple següent utilitza Class.forName() per carregar el controlador d'Oracle tal com es mostra a continuació:

Class.forName(oracle.jdbc.driver.OracleDriver);>

2-B DriverManager.registerDriver()

DriverManager és una classe integrada de Java amb un registre de membres estàtic. Aquí anomenem el constructor de la classe del controlador en temps de compilació. L'exemple següent utilitza DriverManager.registerDriver() per registrar el controlador Oracle tal com es mostra a continuació:

 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>

Pas 3: Establir una connexió utilitzant el Objecte de classe de connexió

Després de carregar el controlador, establiu les connexions tal com es mostra a continuació:

Connection con = DriverManager.getConnection(url,user,password)>
  • usuari: U sername des del qual es pot accedir al vostre indicador d'ordres SQL.
  • contrasenya: contrasenya des de la qual es pot accedir a l'indicador d'ordres SQL.
  • amb: És una referència a la interfície de connexió.
  • URL : Localitzador de recursos uniforme que es crea com es mostra a continuació:
String url = jdbc:oracle:thin:@localhost:1521:xe>

On Oracle és la base de dades utilitzada, prim és el controlador utilitzat, @localhost és l'adreça IP on s'emmagatzema una base de dades, 1521 és el número de port i xe és el proveïdor de serveis. Els 3 paràmetres anteriors són de tipus String i el programador els ha de declarar abans de cridar la funció. L'ús d'això es pot referir a formar el codi final.

Pas 4: Crea una declaració

Un cop establerta la connexió, podeu interactuar amb la base de dades. Les interfícies JDBCStatement, CallableStatement i PreparedStatement defineixen els mètodes que us permeten enviar ordres SQL i rebre dades de la vostra base de dades.
L'ús de la declaració JDBC és el següent:

Statement st = con.createStatement();>

Nota: Aquí, con és una referència a la interfície de connexió utilitzada al pas anterior.

Pas 5: Executeu la consulta

Ara ve la part més important, és a dir, executar la consulta. La consulta aquí és una consulta SQL. Ara sabem que podem tenir diversos tipus de consultes. Alguns d'ells són els següents:

  • La consulta per actualitzar/inserir una taula en una base de dades.
  • La consulta per recuperar dades.

El mètode executeQuery() del fitxer Interfície de declaració s'utilitza per executar consultes per recuperar valors de la base de dades. Aquest mètode retorna l'objecte de ResultSet que es pot utilitzar per obtenir tots els registres d'una taula.
El mètode executeUpdate(consulta sql) de la interfície Statement s'utilitza per executar consultes d'actualització/inserció.

Pseudocodi:

int m = st.executeUpdate(sql); if (m==1)  System.out.println('inserted successfully : '+sql); else  System.out.println('insertion failed');>

Aquí sql és una consulta SQL del tipus String:

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....'>);> >}> }>

>

>

Sortida :

finestra_consola

Pas 6: tancament de les connexions

Així que finalment hem enviat les dades a la ubicació especificada i ara estem a punt de completar la nostra tasca. En tancar la connexió, els objectes de Statement i ResultSet es tancaran automàticament. El mètode close() de la interfície de connexió s'utilitza per tancar la connexió. Es mostra a continuació de la següent manera:

 con.close();>

Exemple:

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);> >}> >}> }>

>

>

java ordenant una llista

Sortida després d'importar dades a la base de dades:

pantalla_de_sortida_després_d'importar_dades