도쿄사는 외노자

DB(PostgreSQL) 연결 본문

Tech/iReport

DB(PostgreSQL) 연결

Enrai 2015. 10. 22. 15:23

1.iReportを立ち上げたら、JDBCファイルを連結する。

  ここではPostgreSqlをインストールするので、PostgreSqlの設置フォルダのJDBCドライバーを使う。

iReport   メニュー ツール → Options → Classpath → Add JAR

C:\Program Files\PostgreSQL\pgJDBC

postgresql-9.4-1200.jdbc4.jar, postgresql-9.4-1200.jdbc41登録、了解

(チェックはしなくてもいい。)

もし、ここにない場合は、

https://jdbc.postgresql.org/download.html

ここでpostgresql-9.4-1200.jdbc4postgresql-9.4-1200.jdbc41をダウンロードして

C:\Program Files\PostgreSQL\pgJDBCれること。 

 


2.DB準備(PostgreSQL

DB生成

CREATE DATABASE "MYDB01" WITH OWNER = postgres

ENCODING = 'UTF-8'

TABLESPACE = pg_default;

 

このQueryを実効してリフレッシュを押したら、DBが作れたはず。

後からのQueryはこのMYDB01で実行すること!


Table生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE rel (
     rel_id int2 NOT NULL
    ,rel_name text,
    CONSTRAINT "rel_PK" PRIMARY KEY (rel_id)
)
 
CREATE TABLE tbl01 (
     uid int4 NOT NULL
    ,fname text
    ,telno1 text
    ,rel_id int2
    ,CONSTRAINT "tbl01_PK" PRIMARY KEY (uid)
)
 
cs


Data入力

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    insert into rel(rel_id, rel_name) values(1,'家族'); 
    insert into rel(rel_id, rel_name) values(2,'親戚');
    insert into rel(rel_id, rel_name) values(3,'同期');
    insert into rel(rel_id, rel_name) values(4,'後輩');
    insert into rel(rel_id, rel_name) values(5,'先輩');
    insert into tbl01(uid,fname,telno1,rel_id) values(1,'父','011-111-1111',1);
    insert into tbl01(uid,fname,telno1,rel_id) values(2,'母','022-222-2222',1);
    insert into tbl01(uid,fname,telno1,rel_id) values(3,'妹','033-333-3333',1);
    insert into tbl01(uid,fname,telno1,rel_id) values(4,'兄','044-444-4444',1);
    insert into tbl01(uid,fname,telno1,rel_id) values(5,'伯父さん','055-555-5555',2);
    insert into tbl01(uid,fname,telno1,rel_id) values(6,'伯母さん','066-666-6666',2);
    insert into tbl01(uid,fname,telno1,rel_id) values(7,'AAA','077-777-7777',3);
    insert into tbl01(uid,fname,telno1,rel_id) values(8,'SSS','088-888-8888',3);
    insert into tbl01(uid,fname,telno1,rel_id) values(9,'DDD','099-999-9999',3);
    insert into tbl01(uid,fname,telno1,rel_id) values(10,'FFF','100-100-1000',4);
    insert into tbl01(uid,fname,telno1,rel_id) values(11,'GGG','200-200-2000',4);
    insert into tbl01(uid,fname,telno1,rel_id) values(12,'BBB','300-300-3000',4);
    insert into tbl01(uid,fname,telno1,rel_id) values(13,'Aさん','123-123-1234',5);
    insert into tbl01(uid,fname,telno1,rel_id) values(14,'Bさん','234-234-2345',5);
    insert into tbl01(uid,fname,telno1,rel_id) values(15,'Cさん','345-345-3456',5);
 
cs

 

このSQLを実行し、データを準備する。

データが準備できたら、このReportに使うSQL文を作成

1
2
3
4
   SELECT b.rel_name, a.fname, a.telno1
   FROM tbl01 a LEFT JOIN rel b ON a.rel_id = b.rel_id
   ORDER BY b.rel_name
 
cs

 

レポートを作る準備完了



3.使うデータソースの定義

メニューのReport Datasourcesをクリック → New → Database JDBC Connection

自分PostgresUsernamePW入力

Testボタンをして、連結ができたか確認。

連結ができたらSave

  

JDBC Driver : PostgreSQL (org.postgresql.Driver)

JDBC URL    : jdbc:postgresql:\\localhost:5432\YourDatabaseName


JDBC URLの最後は、連結するデータベースの名前を入れること。

ここではMYDB01なので、MYDB01を入れればOK

ここまで全部終わったら、iReportを一回再起動すること。

 

4.iReportでレポートを作ってみよう

Step 1.

メニュー → ファイル → New→ ReportTemplate選択(Simple Blueをお

→ Launch Report Wizard → Report名前Locationなどを定義。

Queryでは、使うDBを選ぶ

MyDB01を選択後、準備したSQL文を入れる

 

Step 2. Fields画面で、すべてのColumnを右側に移す。(">>" ボタンクリック)

Step 3. Group byでは何もしないまま、次へ

Step 4. Finishボタンをクリック

 

まずは保存をする。CompilePreviewも…

PDFでも見てみよう。

メニュー → Preview PDF Preview Preview

 

5.日本語が見れる作業。

iReportインストールディレクトリの /ireport/modules/ext/iTextAsian.jar Copyして

ex) C:\Program Files\Jaspersoft\iReport-5.5.0\ireport\modules\ext\iTextAsian.jar

iReportlibフォルダを作って入れる。

ex) C:\Program Files\Jaspersoft\iReport-5.5.0\lib\iTextAsian

    iReport再起動する。

 

さっき作った report01.jrxml をOpenして、

日本語せる項目Properties

Font Name:なんでもいいPDF場合、使われない
PDF Font Name:HeiseiKakuGo-W5
もしくはHeiseiMin-W3
PDF Embedded:
チェックなし
PDF Encoding:UniJIS-UCS2-H (Japanese)

Setting、保存後にPreviewすると…

完了。

'Tech > iReport' 카테고리의 다른 글

Creating JasperReport with subreports using datasource  (0) 2015.10.29
NoSuchMethodException: Unknown property ' '  (0) 2015.10.29
SubReport에서의 무한루프 문제  (0) 2015.10.20
Page表現  (0) 2015.10.19
iReport에서의 BigDecimal 계산  (0) 2015.10.15