Maven

Ang pinakamahalagang detalye ay ang JDBC Driver library para sa MySQL server mismo. Hindi lang ito lalabas sa iyong computer, kaya kailangan mo itong idagdag doon.

Kung gumagamit ka ng Maven, kailangan mong tulungan siya sa pamamagitan ng pagturo ng tamang library.

MySQL JDBC driver :

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

Idagdag lang ang code na ito sa iyong pom.xml .

Magbibigay din ako ng ilang mas sikat na driver.

JDBC Driver para sa PostgeSQL :

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

JDBC driver para sa Oracle :

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

JDBC driver para sa H2 :

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

Unang query sa database

Ang lahat ng kinakailangang mga aklatan ay kasama, ngayon ay oras na upang patakbuhin ang iyong unang database access program. Isusulat namin ang lahat ng code sa main() method .

Stage 1 . Magdagdag ng ilang pag-import bago ang pangunahing() na pamamaraan - gagawin nitong mas madali ang iyong buhay:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

Stage 2 . Una kailangan nating lumikha ng koneksyon sa database. Upang gawin ito, sa main() method , isulat ang sumusunod na code:

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

Magagawa mo rin ito sa isang linya - alinman ang mas maginhawa para sa iyo. Mag-login at password, siyempre, kailangan mong palitan ang mga tunay mula sa iyong lokal na MySQL server.

Stage 3 . Lumilikha kami ng isang query sa database. Kunin natin ang lahat ng user mula sa user table. Pagkatapos ay kakailanganin mong idagdag ang linyang ito ng code:

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

Dalawang linya yan. Sa una lumikha kami ng isang bagayPahayag, at sa pangalawa, ginagamit namin ito upang i-query ang database. Ang executeQuery() na pamamaraan ay nagpapatupad ng isang query sa database at nagbabalik ng isang bagay na may uriset ng resulta.

Stage 4 . Ipakita ang data na nakapaloob sa bagayset ng resulta.

set ng resulta- hindi ito set, tinatawag lang yan. Iniimbak nito ang resulta ng pagpapatupad ng query. Ang bagay na ito ay medyo katulad ng isang iterator: pinapayagan ka nitong itakda / baguhin ang kasalukuyang hilera ng resulta, at pagkatapos ay makakakuha ka ng data mula sa kasalukuyang hilera na ito. Idagdag ang sumusunod na code sa iyong halimbawa:

while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
}

Binabago ng susunod na() na pamamaraan ang kasalukuyang hilera ng resulta sa susunod. Nagbabalik ito ng totoo kung mayroong ganoong linya, at mali kung wala nang mga linya.

Pagkatapos ay mula sa kasalukuyang linya ng bagayset ng resultamaaari kang makakuha ng data mula sa mga column nito:

  • getRow() - ibinabalik ang bilang ng kasalukuyang row sa objectset ng resulta
  • getInt(N) - ibabalik ang data ng Nth column ng kasalukuyang row bilang int
  • getString(N) - ibabalik ang data ng Nth column ng kasalukuyang row bilang String

Buong listahan ng programa

Upang mabawasan ang mga error, narito ang kumpletong listahan ng programa:

package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcApplicatin {
    public static void main(String[] args) throws  Exception{
 	   Connection connection  = DriverManager.getConnection(
          	"jdbc:mysql://localhost:3306/test",
          	"root", "secret");

        Statement statement = connection.createStatement();
    	ResultSet results = statement.executeQuery("SELECT * FROM user");

    	while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
    	}
    	connection.close();
    }
}

At ang output ng aking screen pagkatapos patakbuhin ang programa:

"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
labing-isa Ivanov Ivan
2.2 Petrov Nikolay
3.3 Sidorov Vitaly
Natapos ang proseso gamit ang exit code 0