Apache Derby: atrybuty logowania
Atrybuty logowania
Login i hasło mogą być podawane zarówno przy logowaniu do wbudowanej bazy danych jak i serwerowej bazy danych.
password=hasło
Wprowadza hasło użytkownika.
Używane jest razem z 'user’.
jdbc:derby:baza_danych;user=jacek;password=Urszula
user=login
Specyfikuje nazwę użytkownika.
Przy włączonej autentykacji wymagane jest podanie atrybutów 'user’ i 'password’.
jdbc:derby:baza_danych;user=jacek;password=abcde12345
Klasa R111
package aderby.attributes.logging; import aderby.DerbyUtil; import java.sql.*; public class R111 { private static final String baza = "C:/Przyklady/r111"; private static final String skrypt = "aderby/src/resources/sqls/kraje.sql"; public static void main(String[] args) { DerbyUtil.startDerbyEngine(DerbyUtil.embdriver); Connection conn = DerbyUtil.connectEmbeddedDB(baza, ";create=true;user=jacek;password=abcde"); DerbyUtil.close(conn); Connection con = DerbyUtil.connectEmbeddedDB(baza, ""); DerbyUtil.jdbcRunScript(skrypt, con); Statement stat1 = null; ResultSet rs = null; try { stat1 = con.createStatement(); rs = stat1.executeQuery( "SELECT * FROM kraje ORDER BY liczba_mieszkancow"); while (rs.next()) { System.out.println(rs.getString("nazwa") + " " + rs.getInt("liczba_mieszkancow")); } } catch (SQLException e) { e.printStackTrace(); } DerbyUtil.close(rs); DerbyUtil.close(stat1); DerbyUtil.close(con); DerbyUtil.shutdownEmbeddedDB(baza); DerbyUtil.shutdownDerbyEngine(); } }
W przykładzie tworzymy bazę danych z użyciem nazwy użytkownika i hasła.
Connection conn = DerbyUtil.connectEmbeddedDB(baza, ";create=true;user=jacek;password=abcde");
Gdy zamkniemy bazę i ponownie uruchomimy
Connection con = DerbyUtil.connectEmbeddedDB(baza, "");
baza zostanie uruchomiona mimo nie podania nazwy użytkownika i hasła. Przyczyną jest to, że nie włączyliśmy autentykacji w bazie danych. Powiem o tym w innym wpisie.
Plik kraje.sql
CREATE TABLE kraje( id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY( START WITH 1, INCREMENT BY 1), nazwa VARCHAR(50), liczba_mieszkancow INTEGER ); CREATE INDEX i_nazwa ON kraje (nazwa ASC); CREATE INDEX i_liczba_mieszkancow ON kraje (liczba_mieszkancow DESC); INSERT INTO kraje VALUES(DEFAULT, 'Polska', 38557984); INSERT INTO kraje VALUES(DEFAULT, 'Makau', 545674); INSERT INTO kraje VALUES(DEFAULT, 'Monako', 32130); INSERT INTO kraje VALUES(DEFAULT, 'Singapur', 4608595); INSERT INTO kraje VALUES(DEFAULT, 'Bangladesz', 138448210); INSERT INTO kraje VALUES(DEFAULT, 'Japonia', 127214499); INSERT INTO kraje VALUES(DEFAULT, 'Wietnam', 81624716); INSERT INTO kraje VALUES(DEFAULT, 'Wielka Brytania', 60094648);
Pliki do ściągnięcia
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.