Zielony Smok - logo witryny

Apache Derby: typ danych CHAR

Opis

Łańcuch znaków o stałej wskazanej długości od 1 d0 254 znaków

Składnia

CHAR(liczba znaków)

albo

CHARACTER(liczba znaków)

Odpowiadający typ Java

java.lang.String

Odpowiadający typ JDBC

java.sql.Types.CHAR

Ograniczenia

Jeśli wstawiany łańcuch jest krótszy niż podany, to łańcuch znaków jest automatycznie uzupełniony spacjami do podanej długości. Jeśli jest dłuższy niż podany – nadmiarowa część znaków jest obcinana.

Gdy porównywane są dwa łańcuchy znaków różnej długości (CHAR i CHAR albo CHAR i VARCHAR), krótszy łańcuch znaków jest uzupełniany spacjami do takiej długości jakiej jest dłuższy łańcuch znaków.

Przykład

Klasa R048.java
package aderby.types;

import aderby.DerbyUtil;

import java.sql.*;

public class R048_CHAR {
    private static final String baza = "C:/Przyklady/R048";
    private static final String skrypt = "aderby/src/resources/sqls/dictionary.sql";

    public static void main(String[] args) {
        DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
        Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true");
        DerbyUtil.jdbcRunScript(skrypt, con);
        //pobranie danych
        Statement stat = null;
        ResultSet rs = null;
        try {
            stat = con.createStatement();
            rs = stat.executeQuery("SELECT * FROM dictionary");
            while (rs.next()) {
                System.out.println(
                        rs.getString("english") + " " + rs.getString("polski"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        DerbyUtil.close(rs);
        DerbyUtil.close(stat);
        DerbyUtil.close(con);
        DerbyUtil.shutdownEmbeddedDB(baza);
        DerbyUtil.shutdownDerbyEngine();
    }
}
Plik dictionary.sql
CREATE TABLE dictionary(
            id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY(
                START WITH 1, INCREMENT BY 1),
            english CHAR(30),    
            polski CHAR (30)
);

CREATE INDEX i_english ON dictionary (english ASC);
CREATE INDEX i_polski ON dictionary (polski ASC);

INSERT INTO dictionary VALUES (DEFAULT, 'cat','kot');
INSERT INTO dictionary VALUES (DEFAULT, 'dog','pies');
INSERT INTO dictionary VALUES (DEFAULT, 'pig','świnia');
INSERT INTO dictionary VALUES (DEFAULT, 'aphid','mszyca');
INSERT INTO dictionary VALUES (DEFAULT, 'crocodile','krokodyl');
INSERT INTO dictionary VALUES (DEFAULT, 'ostrich','struś');
INSERT INTO dictionary VALUES (DEFAULT, 'oyster','ostryga');
INSERT INTO dictionary VALUES (DEFAULT, 'bedbug','pluskwa');

Po uruchomieniu klasy na konsoli otrzymujemy:

cat                            kot
dog                            pies
pig                            świnia
aphid                          mszyca
crocodile                      krokodyl
ostrich                        struś
oyster                         ostryga
bedbug                         pluskwa

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.