Arbeta med databaser i Java

Innehållsförteckning
Java Som ett mångsidigt språk, bortsett från de olika funktioner som vi kan uppnå, tillåter det oss också att arbeta med uthållighet av data, för detta kan vi ansluta till de olika motorerna i Databaser som finns på marknaden.
A Databas Det kan vara något så enkelt som ett nyckelvärdesystem i en vanlig textfil, liksom mer komplexa och moderna lösningar som till exempel icke-relationella, detta gör att kunna utveckla olika anslutningssystem till en obligatorisk funktion.
JDBC är en uppsättning klasser som tillåter Java upprätta anslutningar med databasmotorer, detta gör att vi kan få resultaten av frågorna i ett objekt som kallas Resultatet satt.
Eftersom varje motor är olika är det troligt att Resultatet satt som vi får är speciellt för det, det är därför det inte är bekvämt för oss att strukturera vår applikation kring objektet.
För att lösa detta problem kan vi använda det som kallas a åtkomstobjekt, med vilka vi kan hantera våra olika former Resultatet satt att göra din ansökan inom vårt program enklare att implementera och därmed har utvecklaren färre problem.
DAO designmönsterDe Dataåtkomstobjekt eller DAO Det är ett designmönster som samlar det vi hade förklarat i föregående punkt, detta kräver att vi skapar en åtkomstklass till egenskaperna hos våra Databas. För att få detta att fungera måste vi få hela arbetet JDBC och styrenheten som gör att vi kan ansluta till den specifika motor som vi vill ha. Dessutom måste vi utföra den logiska implementering som vi förklarar för att undvika beroende av specifika komponenter som bara skulle göra det svårt för oss att migrera till en annan databasmotor.
Det första vi behöver göra för att skapa en anslutning JDBC är att identifiera vilken motor som vi vill göra anslutningen till och sedan få de nödvändiga klasserna för nämnda anslutning, i det här fallet kommer vi att göra en anslutning MySQL, denna motor är lätt, gratis och multiplatform, så vi kan installera den båda i Windows, Linux eller Mac.
Kontakt / J är uppsättningen klasser som erbjuds av utvecklingsteamet MySQL, med dem kan vi göra JDBC arbeta tillsammans med detta Databaser relationellt, för att införliva det i vårt projekt måste vi följa följande steg.
1- Vi måste ladda ner filen som motsvarar vår plattform Windows eller för andra från MySQL I följande länk.

FÖRSTORA

2- I den här självstudien kommer vi att arbeta under Windows så för implementeringen i våra exempel kommer vi att göra det vid körning för att göra det enklare, men när vi laddar ner paketet installerar vi det för att ha det tillgängligt på vår dator.
3- Nu ska vi fortsätta testa att allt fungerar korrekt på vår dator, för detta kommer vi att göra en liten kod där vi kommer att se om kontakt / J laddades framgångsrikt i vårt system, för detta kommer vi att använda följande kod:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Loaded Class:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- För att köra det här exemplet måste vi inkludera beroendet, det rekommenderas att vi har .burk i samma sökväg som vår fil TestConexion.java. Med detta täckt fortsätter vi med att sammanställa vår fil, vi öppnar en konsol och med instruktionen javac och lägga till .burk till klassväg vid körning med kommandot -cp Vi kan göra det, låt oss se kommandoraden:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Slutligen, för att köra vår fil, behöver vi bara köra följande instruktion:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Om vi ​​har ett resultat som följande i vår konsol kan vi börja arbeta med operationer till Databaser:

FÖRSTORA

Nästa steg vi måste ta är att upprätta en effektiv anslutning till vår Databas, för detta måste vi skapa en med minst ett bord på vår lokala server, på så sätt kan vi utföra några tester, för att göra det enklare skapar vi en databas som heter testa och vi använder följande skript för att skapa tabellen och infoga några testposter, detta för att påskynda utvecklingen av självstudien:

SKAPA TABELL OM DET INTE FÖRSTÅR ​​`användare` (
`id` bigint (20) INTE NULL AUTO_INCREMENT,
`name` varchar (255) NOT NULL,
`date` date NOT NULL,
`state` int (11) NOT NULL,
PRIMÄR KEY ('id')
) MOTOR = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
SÄTT IN I 'användare' ('id', 'namn', 'datum', 'status') VÄRDEN
(1, 'Användare 1', '2015-01-01', 1),
(2, 'Användare 2', '2015-01-01', 1);

Nu i följande kod av Java vi kommer att fokusera på att etablera sambandet med Databas, för detta med en försök fånga block Vi bekräftar att det är effektivt och utan fel, så om anslutningen upprättades kommer vi att skriva ut ett framgångsmeddelande, låt oss se:
 importera java.sql.Connection; importera java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "vår användare"; private static final String password = "vårt lösenord"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sökväg, användare, lösenord); System.out.println ("Anslutningen lyckades"); } catch (Undantag e) {e.printStackTrace (); }}} 

Från denna kod kan vi se att vi måste importera två bibliotek från paketet java.sql, en är Förbindelse som ansvarar för att hantera alla aktiviteter för att kunna kommunicera med databasen och den andra är Enhetshanteraren som är ansvarig för att tillhandahålla sättet vi kommer att kommunicera med det. Om vi ​​har följt stegen korrekt bör vi se följande meddelande när vi kör vårt exempel i konsolen:

FÖRSTORA

Vi har allt redo att börja testa våra frågor, för detta kommer vi att behöva flera saker, det första vi redan har är objektet som gör anslutningen till Databas, då måste vi importera paketen Påstående Y Resultatet satt med vilka vi först kan skicka frågor och sedan få svaret på samma sak, slutligen går vi igenom objektet Resultatet satt där vi kommer att visa data infogade i tabellen och innan vi stänger programmet måste vi stänga var och en av de objekt som vi har skapat, på så sätt garanterar vi integriteten hos våra data. Låt oss se koden som visar vad som förklaras:
 importera java.sql.Connection; importera java.sql.DriverManager; importera java.sql.ResultSet; importera java.sql.Statement; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "vår användare"; private static final String password = "vårt lösenord"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sökväg, användare, lösenord); Uttalandefråga = con.createStatement (); System.out.println ("Anslutningen lyckades"); ResultSet result = query.executeQuery ("VÄLJ * FRÅN användare"); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("date"); System.out.println ("Namn:" + namn + "Registreringsdatum:" + datum); } result.close (); query.close (); slutna (); } catch (Undantag e) {e.printStackTrace (); }}} 

Det är viktigt att nämna det i vårt attribut rutt Vi har ändrat det och namnet på Databas ringa upp testa där vi måste ha våra användartabeller skapade, kompilera vår fil och köra, skulle resultatet per konsol se ut som i följande bild:

FÖRSTORA

Efter att ha observerat exemplet på anslutningen och frågorna till databasen kan vi se att vi måste använda en siffra som heter Förbered uttalande det gör vårt arbete enklare genom att lämna frågor förberedda så att vi kan köra dem flera gånger utan att behöva bygga dem om och om igen, för att uppnå denna dynamik ersätter vi de värden som vi behöver ändra för variabler och sedan när vi kör Frågan skickar vi de verkliga värdena till den. att använda.
FördelDetta har flera fördelar, vi sa redan att det första är att kunna använda något utan att upprepa det, men det är också för säkerheten, eftersom detta gör att vi kan behandla de värden som eventuellt kommer från användarens input för att undvika ett angrepp på vår Databas, förutom att vi också kan underlätta läsbarheten av vårt program.
I följande exempel ska vi skapa en fråga med Förberett uttalande, så att den kan användas flera gånger under vårt program. Låt oss se den resulterande koden:
 importera java.sql.Connection; importera java.sql.DriverManager; importera java.sql.ResultSet; importera java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "vår användare"; private static final String password = "vårt lösenord"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (sökväg, användare, lösenord); PreparedStatement -fråga = con.prepareStatement ("SELECT * FROM users Where id = ?;"); System.out.println ("Anslutningen lyckades"); query.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("date"); System.out.println ("Namn:" + namn + "Registreringsdatum:" + datum); } result.close (); query.close (); slutna (); } catch (Undantag e) {e.printStackTrace (); }}} 

Vi märker att vi använder metoden setInt Med frågeobjektet kan vi skicka den nödvändiga parametern för frågan, med detta kan vi koppla den från utförandet av frågan och därmed få portabilitet och läsbarhet. För att avsluta kompilerar och kör vi vårt program:

FÖRSTORA

Med detta avslutar vi denna handledning, eftersom vi ser alternativen att arbeta med Databaser i Java De är mycket intressanta eftersom de tillåter oss att införliva flexibilitet och mångsidighet i våra applikationer. Det viktigaste är att om vi har erfarenhet av andra språk kommer det säkert att användas här.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave