Před Navázání připojení JDBC v Javě (frontend, tj. váš Java program a back end, tj. databáze), bychom se měli naučit, co přesně je JDBC a proč vznikl. Nyní pojďme diskutovat o tom, co přesně JDBC znamená a co se zjednoduší pomocí ilustrací ze skutečného života, aby to fungovalo.
Co je JDBC?
JDBC je zkratka pro Java Database Connectivity. Je to pokrok pro ODBC (Open Database Connectivity). JDBC je standardní specifikace API vyvinutá za účelem přesunu dat z frontendu do backendu. Toto API se skládá z tříd a rozhraní napsaných v Javě. V podstatě funguje jako rozhraní (ne to, které používáme v Javě) nebo kanál mezi vaším Java programem a databázemi, tj. vytváří spojení mezi nimi, takže programátor může odesílat data z kódu Java a ukládat je do databáze pro budoucí použití. .
Ilustrace: Práce JDBC v korelaci s real-time
Proč JDBC vzniklo?
Jak již bylo řečeno, JDBC je pokrokem pro ODBC, protože ODBC je závislé na platformě, mělo mnoho nevýhod. ODBC API bylo napsáno v C, C++, Pythonu a Core Java a jak víme výše, jazyky (kromě Javy a některých částí Pythonu) jsou závislé na platformě. Proto pro odstranění závislosti byl JDBC vyvinut dodavatelem databáze, která se skládala z tříd a rozhraní napsaných v Javě.
Kroky k propojení aplikace Java s databází
Níže jsou uvedeny kroky, které vysvětlují, jak se připojit k databázi v Javě:
Krok 1 – Importujte balíčky
Krok 2 – Načtěte ovladače pomocí metodu forName().
Krok 3 – Zaregistrujte ovladače pomocí DriverManager
Krok 4 – Navažte spojení pomocí objektu třídy Connection
Krok 5 – Vytvořte prohlášení
Krok 6 – Proveďte dotaz
Krok 7 – Uzavřete spoje
Konektivita databáze Java
Před implementací napíšeme vhodný kód, který bude ilustrovat kroky připojení pro JDBC, stručně si tyto kroky probereme.
Krok 1: Importujte balíčky
Krok 2: Načítání ovladačů
Chcete-li začít, musíte nejprve načíst ovladač nebo jej zaregistrovat, než jej použijete v programu. Registraci je třeba provést jednou ve vašem programu. Ovladač můžete zaregistrovat jedním ze dvou níže uvedených způsobů:
2-A Class.forName()
Zde načteme soubor třídy ovladače do paměti za běhu. Není třeba používat nové nebo vytvářet objekty. Následující příklad používá Class.forName() k načtení ovladače Oracle, jak je uvedeno níže:
java len pole
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager je vestavěná třída Java se statickým registrem členů. Zde voláme konstruktor třídy ovladače v době kompilace. Následující příklad používá DriverManager.registerDriver() k registraci ovladače Oracle, jak je uvedeno níže:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Krok 3: Navažte spojení použitím a Objekt třídy připojení
Po načtení ovladače vytvořte připojení, jak je uvedeno níže:
Connection con = DriverManager.getConnection(url,user,password)>
- uživatel: U serename, ze kterého lze přistupovat k příkazovému řádku SQL.
- Heslo: heslo, ze kterého lze přistupovat k příkazovému řádku SQL.
- s: Je to odkaz na rozhraní Connection.
- URL : Uniform Resource Locator, který je vytvořen, jak je uvedeno níže:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Kde je použitá databáze Oracle, Thin je použitý ovladač, @localhost je IP adresa, kde je databáze uložena, 1521 je číslo portu a xe je poskytovatel služeb. Všechny 3 výše uvedené parametry jsou typu String a musí být deklarovány programátorem před voláním funkce. Použití tohoto může být odkazováno na vytvoření konečného kódu.
Krok 4: Vytvořte prohlášení
Po navázání spojení můžete pracovat s databází. Rozhraní JDBCStatement, CallableStatement a PreparedStatement definují metody, které vám umožňují odesílat příkazy SQL a přijímat data z vaší databáze.
Použití prohlášení JDBC je následující:
java matematický pow
Statement st = con.createStatement();>
Poznámka: Zde con je odkaz na rozhraní připojení použité v předchozím kroku .
Krok 5: Proveďte dotaz
Nyní přichází ta nejdůležitější část, tj. provedení dotazu. Zde se jedná o dotaz SQL. Nyní víme, že můžeme mít více typů dotazů. Některé z nich jsou následující:
- Dotaz na aktualizaci/vložení tabulky do databáze.
- Dotaz pro načtení dat.
Metoda executeQuery() souboru Rozhraní příkazu se používá k provádění dotazů na získávání hodnot z databáze. Tato metoda vrací objekt ResultSet, který lze použít k získání všech záznamů tabulky.
Metoda executeUpdate(sql query) rozhraní Statement se používá k provádění dotazů aktualizace/vkládání.
Pseudo kód:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Zde sql je SQL dotaz typu String:
Jáva
// 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....'> );> > }> }> |
>
algoritmus minimax
>
Výstup :
Krok 6: Uzavření připojení
Takže konečně jsme odeslali data na zadané místo a nyní jsme na pokraji dokončení našeho úkolu. Ukončením připojení se automaticky uzavřou objekty Statement a ResultSet. K uzavření připojení se používá metoda close() rozhraní Connection. Níže je zobrazen následovně:
con.close();>
Příklad:
mamta kulkarni herec
Jáva
// 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);> > }> > }> }> |
>
>
Výstup po importu dat do databáze: