LoginSignup
2
2

More than 5 years have passed since last update.

JasperReportsで、MySQLに接続してレポートを作成する

Posted at

JasperReportをつかい始めたころ、ササっとデータベースに接続させることができなかったので、覚書きを作っておくことにしました。

この記事に書いてあること

1.レポートの作成方法
  基本的な画面の構成などをおさらいします。
2.MySQLへの接続方法
  DB(MySQL)からデータを取得するためにDATAADDAPTERを作成します。
3.データ取得とレポートへの表示
  実際に作成した接続設定を使用して、レポートにデータを表示させてみます。

1.レポートの作成方法

レポートプロジェクトを作る

まずは、レポートのプロジェクトを作成します。
Eclipseメニューバーより、「ファイル」 - 「新規」 - 「プロジェクト(R)…」を選択します。
image

JasperReports projectを選択して「次へ」押下します。
image

任意の名前で作成します。
image

以下のように作成されます。
image

新規レポートを作成する

「ファイル(F)」 - 「新規(N)」 - 「Jasper Report」を選択します。
image

レポートの形式を選択して「次へ」を押下します。
image

親フォルダの選択、ファイル名を入力して「完了」を押下します。
※今回はexampleパッケージ内に作成します。
image

白紙のレポートが作成されて、レイアウティング画面が開きます。
image

画面の構成を見てみる

レポートを新規作成すると、下のような画面になっています。
アウトラインやパレットから必要なエレメントをどんどん配置していきます。
image

各エレメントのプロパティで、サイズ、罫線、フォントなどを決めることができます。
式を設定し、関数を使用した値を出力することもできます。
工夫次第で、かなり凝ったデザインを作成することも可能です。(センス次第)
image

2.MySQLへの接続設定方法

「ファイル」 - 「新規」 - 「Data Adapter」を選択します。
image

任意の名前で作成します。
(今回は、exampleパッケージ内に作成しておきました。ほんと破たんの構成考えて作成しないとダメです。)
image

JDBCコネクションを選択し、「次へ」を押下します。
image

接続名(任意)、JDBCドライバー、JDBC Url、ユーザー名、パスワードを指定します。
 JDBCドライバー:com.mysql.jdbc.Driver
 JDBC Url:jdbc:mysql://[ホスト名(localhostなど)]/[DB名]
 ユーザー名:指定したDBに接続するユーザー名
 パスワード:接続パスワード
image

ドライバー・クラスパスタブに移動し、パスを追加する
※使用するドライバーはあらかじめ取得しておく必要があります。
 説明の必要もないかと思いますが、、、
「MySQL JDBCドライバ」等とググるとすぐダウンロードできるでしょう。
image

image

「テスト」押下し、「成功」とダイアログが表示されたら完了です。

「完了」を押下し、DataAdapterの作成を終了します。

3.データ取得とレポートへの表示

レポートのレイアウティング画面にて、
画面右上のDATAADDAPTERマークを押下し、クエリーダイアログを起動します。
image

使用するデータベースリソースに対するクエリーを作成し、「Read Fields」押下してフィールドの読み込みを行います。
今回はviewからデータを全件取得するクエリーを書いています。
※ここでパラメータをセットして、Javaから条件を指定してデータ表示することもできますが、それについてはいずれ...

読み込んだフィールドのClass Typeを確認して「OK」を押下します。
image

フィールドとして使用できるようになります。
image

プレビュータブで、DBへ接続し、データ取得を確認できました。
image

なかなかあっさりと、DBからの値が取得できました。
わざわざCSVを用意するのと、労力的にはほぼ変わらないですね。。。

今回は以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2