Kuidas ühendada Java abil MySQL -i andmebaasiga

Kuidas ühendada Java abil MySQL -i andmebaasiga

Java pakub JDBC (Java andmebaasi ühenduvus) Java SDK (tarkvaraarenduskomplekti) osana. Seda kasutades Tuli , on väga lihtne luua ühendus relatsiooniandmebaasiga ja teha tavalisi toiminguid, nagu päringute tegemine, kirjete sisestamine, värskendamine ja kustutamine.





Kuigi tuum JDBC API on java -sse kaasatud, nõuab konkreetse andmebaasiga (nt MySQL või SQL Server) ühenduse loomine täiendavat komponenti, mida tuntakse andmebaasi draiverina. See andmebaasi draiver on tarkvarakomponent, mis teisendab JDBC põhikõned selle andmebaasi jaoks arusaadavasse vormingusse.





windows 10 bsod süsteemi lõime erandit ei käsitleta

Selles artiklis vaatleme MySQL -i andmebaasiga ühenduse loomise üksikasju ja seda, kuidas sellega paar päringut teha.





MySQL andmebaasi draiver

Nagu ülalpool selgitatud, on MySQL -i andmebaasiga ühenduse loomiseks vaja MySQL -i jaoks JDBC draiverit. Seda nimetatakse Connector/J draiveriks ja selle saab alla laadida saidilt MySQL saidil siin.

Kui olete ZIP (või TAR.GZ) faili alla laadinud, võtke arhiiv välja ja kopeerige JAR -fail mysql-konnektor-java-bin.jar sobivasse kohta. See fail on vajalik mis tahes MySQL JDBC draiverit kasutava koodi käitamiseks.



Näidisandmebaasi loomine

Eeldusel, et olete alla laadinud MySQL andmebaasi ja seadistage see õigesti Kui teil on sellele juurdepääs, loome näidisbaasi, et saaksime seda kasutada päringute ühendamiseks ja täitmiseks.

Looge andmebaasiga ühendus teie valitud kliendi abil ja käivitage näidisbaasi loomiseks järgmised avaldused.





create database sample;

Samuti vajame andmebaasiga ühenduse loomiseks kasutajanime ja parooli (kui te ei soovi administraatorina ühendust luua, mis on üldiselt halb mõte).

Järgnev loob kasutaja nimega testija kes ühendub MySQL andmebaasiga samast masinast, kus see töötab (tähistatud localhost ), kasutades parooli securepwd .





create user 'testuser'@'localhost' identified by 'securepwd';

Kui loote ühenduse mõne teise masinaga (nimega) töötava andmebaasiga kaugjuhtimispult ), peate kasutama järgmist ( kaugjuhtimispult võib olla hostinimi või IP -aadress):

create user 'testuser'@'remotemc' identified by 'securepwd';

Nüüd, kui kasutajanimi ja parool on loodud, peame andma juurdepääsu varem loodud näidisandmebaasile.

grant all on sample.* to 'testuser'@'localhost';

Või kui andmebaas on kaugel:

grant all on sample.* to 'testuser'@'remotemc';

Nüüd peaksite kontrollima, kas saate andmebaasiga ühenduse luua kasutajana, kelle te just sama parooliga lõite. Pärast ühendamist saate käivitada ka järgmised käsud, et veenduda, kas kõik õigused on õiged.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Java klassi tee seadistamine

Vaatame nüüd üksikasju selle kohta, kuidas Java kaudu MySQL -iga ühenduse luua. Esimene samm on andmebaasi draiveri laadimine. Selleks kasutage sobivas kohas järgmist.

usb -seadme deskriptori taotlus ebaõnnestus
Class.forName('com.mysql.jdbc.Driver');

Kood võib tekitada erandi, nii et saate selle tabada, kui kavatsete sellega tegeleda (näiteks veateate vormindamine GUI jaoks).

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

Väga sageli kutsutakse seda koodi klassi staatilises plokis, nii et programm ebaõnnestub kohe, kui draiverit ei saa laadida.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Muidugi, draiveri leidmiseks tuleb programm käivitada koos draiveriga JAR (alla laaditud ja ekstraheeritud), mis on lisatud klassi teele järgmiselt.

java -cp mysql-konnektor-java-bin.jar: ...

Ühendus MySQL -iga Java kaudu

Nüüd, kui oleme Java -st MySQL -i draiveri laadimise üksikasjad eemaldanud, alustame andmebaasiga ühenduse loomist. Üks võimalus andmebaasiühenduse loomiseks on kasutada DriverManager .

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

Ja mis on jdbcUrl ? See näitab ühenduse üksikasju, sealhulgas serverit, kus andmebaas asub, kasutajanime ja nii edasi. Siin on meie näite URL -i näidis.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

Pange tähele, et oleme lisanud kõik ühenduse jaoks vajalikud parameetrid, sealhulgas hostinime ( localhost ), kasutajanimi ja parool. (Sellise parooli lisamine EI OLE hea tava, vaadake alternatiive allpool.)

Seda kasutades jdbcUrl , siin on täielik programm ühenduvuse kontrollimiseks.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

Pange tähele, et andmebaasiühendus on programmi väärtuslik ressurss ja see tuleb korralikult sulgeda, nagu eespool kirjeldatud. Ülaltoodud kood ei sulge siiski ühendust erandi korral. Ühenduse sulgemiseks tavalisel või ebanormaalsel väljumisel kasutage järgmist mustrit:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

Nagu eespool märgitud, on halb mõte manustada parool JDBC URL -i. Kasutajanime ja parooli otse määramiseks võite selle asemel kasutada järgmist ühendusvalikut.

kumb on parem vmware või virtualbox
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Andmebaasi päring Java -st

Nüüd, kui ühendus andmebaasiga on loodud, vaatame, kuidas päringut teha, näiteks andmebaasi versiooni päringut teha.

select version();

Päring käivitatakse javas järgmiselt. A Avaldus objekt luuakse ja päring täidetakse, kasutades executeQuery () meetod, mis tagastab a ResultSet .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

Printige versioon ResultSet järgnevalt. 1 viitab tulemuste veeru indeksile alates 1.

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

Pärast tulemuste töötlemist tuleb objektid sulgeda.

rset.close();
stmt.close();

Ja see hõlmab kõike, mis on seotud javaga MySQL -iga ühenduse loomise ja lihtsa päringu tegemisega.

Vaadake ka meie SQL -i käsud petavad lehte .

Jaga Jaga Piiksuma E -post Kas Windows 11 installimine ühildumatusse arvutisse sobib?

Nüüd saate installida Windows 11 vanematele arvutitele ametliku ISO -failiga ... kuid kas see on hea mõte?

Loe edasi
Seotud teemad
  • Programmeerimine
  • Java
  • SQL
Autori kohta Jay Sridhar(17 artiklit avaldatud) Veel Jay Sridharilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin