JDBCドライバ

JDBC


はじめに


この章では、JDBC(Java Database Connectivity の略です。)について学習します。
JDBCは、データベースにアクセスするためのプログラムです。
データベースにはさまざまな種類があり、それぞれ機能や接続方法も異なります。
データベース毎に「接続するプログラム」をいちいち作っていては、プログラマも大変です。
JDBCには、そのような違いを吸収するような仕組みが備わっています。
一度、JDBCをマスタすればデータベースの種類が変わっても少々の記述を変更するだけで、
どのようなデータベースにも対応することが可能です。

Step1 : JDBCドライバ


JDBCドライバは、Javaプログラムに対して定義した機能を提供し、実際にデータベースへ接続して処理を行う部分です。
ほとんどの場合、データベース各社が提供しています。

Step2 : JDBCの設定


PostgreSQLへの接続方法

まずはプロジェクトを作成します。
(ファイル→Javaプロジェクト→Javaプロジェクトの作成)

下記JDBCドライブの最新のjarファイルとSQLファイルをダウンロードしてください。
https://jdbc.postgresql.org/download.html

pgAdmin4でsqlを実行し、SQL課題で使用したPostgreSQLデータベースにJava演習問題で必要なテーブルの作成とデータを登録します。

createTable

CREATE TABLE TB_SHOHIN(
    SHOHIN_ID    CHAR(3)     NOT NULL,
    SHOHIN_NAME  VARCHAR(50) NOT NULL,
    TANKA        INTEGER default 0,
    CONSTRAINT pk_tb_shohin PRIMARY KEY(SHOHIN_ID)
);

CREATE TABLE T_KUYAKUSHO(
    ID        INTEGER     NOT NULL,
    KU        VARCHAR(20) NOT NULL,
    ZIP       VARCHAR(10) NOT NULL,
    ADDRESS   VARCHAR(50) NOT NULL,
    TEL       VARCHAR(20) NOT NULL,
    CONSTRAINT pk_t_kuyakusho PRIMARY KEY(ID)
);

CREATE TABLE USERINFO (
  USERID CHAR(20) CONSTRAINT PK_USERID PRIMARY KEY,
  PASSWORD VARCHAR(20) NOT NULL,
  GRANTID CHAR(2) NOT NULL,
  WORKPlACEID CHAR(2) NOT NULL,
  FAMILYNAME VARCHAR(20),
  FIRSTNAME VARCHAR(20)
);

commit;

insertData

INSERT INTO TB_SHOHIN VALUES('001','SHOHIN001',100);
INSERT INTO TB_SHOHIN VALUES('002','SHOHIN002',200);
INSERT INTO TB_SHOHIN VALUES('003','SHOHIN003',300);
INSERT INTO TB_SHOHIN VALUES('004','SHOHIN004',400);
INSERT INTO TB_SHOHIN VALUES('005','SHOHIN005',500);
INSERT INTO TB_SHOHIN VALUES('006','SHOHIN006',600);
INSERT INTO TB_SHOHIN VALUES('007','SHOHIN007',700);
INSERT INTO TB_SHOHIN VALUES('008','SHOHIN008',800);
INSERT INTO TB_SHOHIN VALUES('009','SHOHIN009',900);
INSERT INTO TB_SHOHIN VALUES('010','SHOHIN010',1000);
INSERT INTO TB_SHOHIN VALUES('011','SHOHIN011',1100);
INSERT INTO TB_SHOHIN VALUES('012','SHOHIN012',1200);
INSERT INTO TB_SHOHIN VALUES('013','SHOHIN013',1300);
INSERT INTO TB_SHOHIN VALUES('014','SHOHIN014',1400);
INSERT INTO TB_SHOHIN VALUES('015','SHOHIN015',1500);
INSERT INTO TB_SHOHIN VALUES('016','SHOHIN016',1600);
INSERT INTO TB_SHOHIN VALUES('017','SHOHIN017',1700);
INSERT INTO TB_SHOHIN VALUES('018','SHOHIN018',1800);
INSERT INTO TB_SHOHIN VALUES('019','SHOHIN019',1900);
INSERT INTO TB_SHOHIN VALUES('020','SHOHIN020',2000);

INSERT INTO T_KUYAKUSHO VALUES(1,'世田谷区役所','154-8504','東京都世田谷区世田谷4-21-27','03-5432-1111');
INSERT INTO T_KUYAKUSHO VALUES(2,'杉並区役所','166-8570','東京都杉並区阿佐ヶ谷南1-15-1','03-3312-2111');
INSERT INTO T_KUYAKUSHO VALUES(3,'江東区役所','135-8383','東京都江東区東陽 4-11-28','03-3647-9111');
INSERT INTO T_KUYAKUSHO VALUES(4,'港区役所','105-8511','東京都港区芝公園1-5-25','03-3578-2111');
INSERT INTO T_KUYAKUSHO VALUES(5,'品川区役所','140-8715','東京都品川区広町2-1-36','03-3777-1111');
INSERT INTO T_KUYAKUSHO VALUES(6,'荒川区役所','116-8501','東京都荒川区荒川2-2-3','03-3802-3111');
INSERT INTO T_KUYAKUSHO VALUES(7,'板橋区役所','173-8501','東京都板橋区板橋2-66-1','03-3964-1111');
INSERT INTO T_KUYAKUSHO VALUES(8,'中央区役所','104-8404','東京都中央区築地1-1-1','03-3543-0211');
INSERT INTO T_KUYAKUSHO VALUES(9,'文京区役所','112-0003','東京都文京区春日1-16-21','03-3812-7111');
INSERT INTO T_KUYAKUSHO VALUES(10,'台東区役所','110-8615','東京都台東区東上野4-5-6','03-5246-1111');
INSERT INTO T_KUYAKUSHO VALUES(11,'足立区役所','120-8501','東京都足立区中央本町1-17-1','03-3880-5111');
INSERT INTO T_KUYAKUSHO VALUES(12,'江戸川区役所','132-8501','東京都江戸川区中央1-4-1','03-3652-1151');
INSERT INTO T_KUYAKUSHO VALUES(13,'北区役所','114-8508','東京都北区王子本町1-15-22','03-3908-1111');
INSERT INTO T_KUYAKUSHO VALUES(14,'渋谷区役所','150-8010','東京都渋谷区宇田川町1-1','03-3463-1211');
INSERT INTO T_KUYAKUSHO VALUES(15,'練馬区役所','176-8501','東京都練馬区豊玉北6-12-1','03-3993-1111');
INSERT INTO T_KUYAKUSHO VALUES(16,'目黒区役所','153-8573','東京都目黒区上目黒2-19-15','03-3715-1111');
INSERT INTO T_KUYAKUSHO VALUES(17,'大田区役所','144-8621','東京都大田区蒲田5-13-14','03-5744-1111');
INSERT INTO T_KUYAKUSHO VALUES(18,'葛飾区役所','124-8555','東京都葛飾区立石5-13-1','03-3695-1111');
INSERT INTO T_KUYAKUSHO VALUES(19,'新宿区役所','160-8484','東京都新宿区歌舞伎町1-4-1','03-3209-1111');
INSERT INTO T_KUYAKUSHO VALUES(20,'千代田区役所','102-8688','東京都千代田区九段南1-6-11','03-3264-2111');
INSERT INTO T_KUYAKUSHO VALUES(21,'墨田区役所','130-8640','東京都墨田区吾妻橋1-23-20','03-5608-1111');
INSERT INTO T_KUYAKUSHO VALUES(22,'豊島区役所','170-8422','東京都豊島区東池袋1-18-1','03-3981-1111');
INSERT INTO T_KUYAKUSHO VALUES(23,'中野区役所','164-8501','東京都中野区中野4-8-1','03-3389-1111');

INSERT INTO USERINFO VALUES('test','test','00','00', 'ケヤキ', '太郎');
INSERT INTO USERINFO VALUES('head','admin','01','01', 'ケヤキ', '次郎');
INSERT INTO USERINFO VALUES('shop','admin','02','02', 'ケヤキ', '三郎');
INSERT INTO USERINFO VALUES('T0001','T0001','02','03', 'ケヤキ', '札幌太郎');
INSERT INTO USERINFO VALUES('T0002','T0002','02','04', 'ケヤキ', '釧路太郎');
INSERT INTO USERINFO VALUES('T0003','T0003','02','05', 'ケヤキ', '函館太郎');
INSERT INTO USERINFO VALUES('T0004','T0004','02','06', 'ケヤキ', '青森太郎');
INSERT INTO USERINFO VALUES('T0005','T0005','02','07', 'ケヤキ', '仙台太郎');
INSERT INTO USERINFO VALUES('T0006','T0006','02','08', 'ケヤキ', '山形太郎');
INSERT INTO USERINFO VALUES('T0007','T0007','02','09', 'ケヤキ', '福島太郎');
INSERT INTO USERINFO VALUES('T0008','T0008','02','10', 'ケヤキ', '前橋太郎');
INSERT INTO USERINFO VALUES('T0009','T0009','02','11', 'ケヤキ', '宇都宮太郎');
INSERT INTO USERINFO VALUES('T0010','T0010','02','12', 'ケヤキ', '水戸太郎');
INSERT INTO USERINFO VALUES('T0011','T0011','02','13', 'ケヤキ', 'さいたま太郎');
INSERT INTO USERINFO VALUES('T0012','T0012','02','14', 'ケヤキ', '千葉太郎');
INSERT INTO USERINFO VALUES('T0013','T0013','02','15', 'ケヤキ', '横浜太郎');
INSERT INTO USERINFO VALUES('T0014','T0014','02','16', 'ケヤキ', '東京本店');
INSERT INTO USERINFO VALUES('T0015','T0015','02','17', 'ケヤキ', '新宿太郎');
INSERT INTO USERINFO VALUES('T0016','T0016','02','18', 'ケヤキ', '渋谷太郎');
INSERT INTO USERINFO VALUES('T0017','T0017','02','19', 'ケヤキ', '池袋太郎');
INSERT INTO USERINFO VALUES('T0018','T0018','02','20', 'ケヤキ', '秋葉原太郎');
INSERT INTO USERINFO VALUES('T0019','T0019','02','21', 'ケヤキ', '有楽町太郎');
INSERT INTO USERINFO VALUES('T0020','T0020','02','22', 'ケヤキ', '赤羽太郎');
INSERT INTO USERINFO VALUES('T0021','T0021','02','23', 'ケヤキ', '銀座太郎');
INSERT INTO USERINFO VALUES('T0022','T0022','02','24', 'ケヤキ', '浜松町太郎');
INSERT INTO USERINFO VALUES('T0023','T0023','02','25', 'ケヤキ', '静岡太郎');
INSERT INTO USERINFO VALUES('T0024','T0024','02','26', 'ケヤキ', '岐阜太郎');
INSERT INTO USERINFO VALUES('T0025','T0025','02','27', 'ケヤキ', '名古屋太郎');
INSERT INTO USERINFO VALUES('T0026','T0026','02','28', 'ケヤキ', '山梨太郎');
INSERT INTO USERINFO VALUES('T0027','T0027','02','29', 'ケヤキ', '長野太郎');
INSERT INTO USERINFO VALUES('T0028','T0028','02','30', 'ケヤキ', '金沢太郎');
INSERT INTO USERINFO VALUES('T0029','T0029','02','31', 'ケヤキ', '新潟太郎');
INSERT INTO USERINFO VALUES('T0030','T0030','02','32', 'ケヤキ', '富山太郎');
INSERT INTO USERINFO VALUES('T0031','T0031','02','33', 'ケヤキ', '福井太郎');
INSERT INTO USERINFO VALUES('T0032','T0032','02','34', 'ケヤキ', '京都太郎');
INSERT INTO USERINFO VALUES('T0033','T0033','02','35', 'ケヤキ', '伏見太郎');
INSERT INTO USERINFO VALUES('T0034','T0034','02','36', 'ケヤキ', '奈良太郎');
INSERT INTO USERINFO VALUES('T0035','T0035','02','37', 'ケヤキ', '大阪太郎');
INSERT INTO USERINFO VALUES('T0036','T0036','02','38', 'ケヤキ', '道頓堀太郎');
INSERT INTO USERINFO VALUES('T0037','T0037','02','39', 'ケヤキ', '淀川太郎');
INSERT INTO USERINFO VALUES('T0038','T0038','02','40', 'ケヤキ', '堺太郎');
INSERT INTO USERINFO VALUES('T0039','T0039','02','41', 'ケヤキ', '和歌山太郎');
INSERT INTO USERINFO VALUES('T0040','T0040','02','42', 'ケヤキ', '神戸太郎');
INSERT INTO USERINFO VALUES('T0041','T0041','02','43', 'ケヤキ', '広島太郎');
INSERT INTO USERINFO VALUES('T0042','T0042','02','44', 'ケヤキ', '鳥取太郎');
INSERT INTO USERINFO VALUES('T0043','T0043','02','45', 'ケヤキ', '岡山太郎');
INSERT INTO USERINFO VALUES('T0044','T0044','02','46', 'ケヤキ', '愛媛太郎');
INSERT INTO USERINFO VALUES('T0045','T0045','02','47', 'ケヤキ', '高知太郎');
INSERT INTO USERINFO VALUES('T0046','T0046','02','48', 'ケヤキ', '福岡太郎');
INSERT INTO USERINFO VALUES('T0047','T0047','02','49', 'ケヤキ', '博多太郎');
INSERT INTO USERINFO VALUES('T0048','T0048','02','50', 'ケヤキ', '熊本太郎');
INSERT INTO USERINFO VALUES('T0049','T0049','02','51', 'ケヤキ', '鹿児島太郎');
INSERT INTO USERINFO VALUES('T0050','T0050','02','52', 'ケヤキ', '沖縄太郎');
INSERT INTO USERINFO VALUES('T1001','T1001','02','53', 'ケヤキ', 'アメリカ太郎');
INSERT INTO USERINFO VALUES('T2001','T2001','02','54', 'ケヤキ', 'ヨーロッパ太郎');


commit;
テーブル作成 レコード挿入
createTable insertData

PostgreSQLデータベースへの接続をするにあたり、PostgreSQLのドライバが必要になります。
JDBCドライバのjarファイルをプロジェクトのクラスパスに追加する必要があります。

プロジェクト内のフォルダに「lib」フォルダがないか探します。 なければフォルダを自分で作成します。

「lib」フォルダ内に、先ほどダウロードした postgresql[ご自身のダウンロードしたバージョン].jarファイル をコピーします。

ビルド・パスへの追加:パターン1
コピーしたjarファイルを右クリックし、「ビルド・パス」→「ビルド・パスに追加」を選択します。

ビルド・パスの追加に成功すると、「参照ライブラリー」がプロジェクト内に生成され、
展開すると、追加したjarファイルが表示されるようになります。

ビルド・パスへの追加:パターン2
「ビルド・パス」→「ビルドパスの構成」を選択し、「ライブラリー」タブを選択すると、
プロジェクト内で使用されているライブラリーを確認することができます。 このウィンドウの「jarの追加」からでもビルド・パスへの追加を行えます。

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami