MS SQL Server, JDBC, Maven a NetBeans

Ako použiť prístup k databázam MS SQL Serveru cez JDBC v Mavene? S NetBeansom je to omnoho ľahšie než by sa zdalo. Budeme potrebovať:

  • JDBC ovládače k MS SQL Serveru
  • Maven na správu závislostí
  • NetBeans ako klikací nástroj pre Maven a IDE pre kódenie

JDBC ovládače

  1. Stiahneme archív s JDBC ovládačom z portálu Microsoft MSDN.
  2. Na Windowse si vyberieme .exe súbor s automatickým inštalátorom
  3. Spustením súboru ho rozbalíme do adresára s názvom bez medzier, ideálne s cestou, ktorá obsahuje len krátke názvy (8.3)
  4. V rozbalenom adresári nájdeme dva súbory:
    • sqljdbc4.jar: ovládač pre JDBC 4.0 určený pre Javu 6 a 7.
    • sqljdbc.jar: ovládač pre JDBC 3.0 určený výhradne pre Javu 5
  5. poznamenáme si názov triedy pre samotný ovládač: com.microsoft.sqlserver.jdbc.SQLServerDriver

Maven a MS SQL ovládač

Mavenovské centrálne úložisko neobsahuje JAR archívy pre JDBC ovládač k tejto databáze, zrejme z licenčných dôvodov. Napriek tomu môžeme tento JAR súbor ručne nainštalovať do lokálneho mavenovského úložiska.

Inštalácia v NetBeanse

  1. Do projektu pridáme závislosť tradičným spôsobom: napr. pravým klikom na Dependencies a zvolením Add Dependency…

    Pridávanie závislostí do projektu

  2. Vyplníme ručne koordináty pre závislosť. V tomto prípade, prirodzene, sa artefakt k JDBC ovládaču v mavenovskom úložisku nenachádza. Vyplnením údajov vytvoríme mavenovské metadáta (popis) závislosti, ktorú v ďalšom kroku vložíme do lokálneho úložiska Mavenu ručne. Koordináty môžu byť:

    • Group ID: com.microsoft
    • Artifact ID: sqljdbc4
    • Version: 4.0.2206.100 (prevzatá z názvu inštalátora ovládača stiahnutého z MSDN).

    Vyplnenie koordinátov k závislosti

  3. Všimneme si, že závislosť sa už zjavila v projekte. Keďže k nej neprislúcha žiaden reálny JAR súbor, je označená výkričníkom.

    Pridaná závislosť do projektu

  4. Všimneme si, že závislosť sa už zjavila v projekte. Keďže k nej neprislúcha žiaden reálny JAR súbor, je označená výkričníkom.

  5. Teraz manuálne nainštalujeme JAR súbor do lokálneho úložiska. Pravým kliknutím na názov artefaktu (sqljdbc4.4.0.2206.100.jar) zobrazíme dialóg.

    Manuálna inštalácia artefaktu

  6. V dialógu určíme cestu k JAR archívu s JDBC ovládačom.

    Dialóg pre manuálnu inštaláciu artefaktu

Ručná inštalácia

Namiesto NetBeansu môžeme nainštalovať JAR artefakt do lokálneho úložiska Mavenu aj ručne. Ak máme stiahnutý Maven a príkaz mvn existuje v premennej prostredia PATH, môžeme spustiť:

mvn install:install-file -DartifactId=sqljdbc4 -DgroupId=com.microsoft -Dversion=4.0.2206.100 -Dpackaging=jar -Dfile=C:\\java\\mssqljdbc\\sqljdbc4.jar -DgeneratePom=false 

Testovací kód

Ak sa chceme pripojiť k databáze teplaky, adresa URL pre prístup k lokálnemu serveru bude vyzerať nasledovne:

jdbc:sqlserver://localhost:1433;databaseName=teplaky

Kompletný kód pre pripojenie:

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcDriverRunner {
    public static void main(String[] args) {
        SQLServerDataSource dataSource = new SQLServerDataSource();
        dataSource.setURL("jdbc:sqlserver://localhost:1433;databaseName=teplaky");
        dataSource.setUser("paz1c");
        dataSource.setPassword("a");

        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {        
            connection = dataSource.getConnection();
            statement = connection.createStatement();
            resultSet = statement.executeQuery("SELECT COUNT(*) FROM TEPLAKY");

            while(resultSet.next()) {
                System.out.println("Pocet teplakov:" + resultSet.getInt(1));                
            }

        } catch (SQLException e) {
            if(resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }                
            }
            if(connection != null) {
                try {
                    connection.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }            
        }

    }        
}

Pramene

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *