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

JasperReportをつかい始めたころ、ササっとデータベースに接続させることができなかったので、覚書きを作っておくことにしました。
#この記事に書いてあること
1.レポートの作成方法
　　基本的な画面の構成などをおさらいします。
2.MySQLへの接続方法
　　DB(MySQL)からデータを取得するためにDATAADDAPTERを作成します。
3.データ取得とレポートへの表示
　　実際に作成した接続設定を使用して、レポートにデータを表示させてみます。

#1.レポートの作成方法
##レポートプロジェクトを作る
まずは、レポートのプロジェクトを作成します。
Eclipseメニューバーより、「ファイル」 - 「新規」 - 「プロジェクト(R)…」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/73d579a4-996a-4412-abc6-f1e3b5108e07.png)

JasperReports projectを選択して「次へ」押下します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/7f0e42ef-0090-6fb7-cee3-981c46d3f777.png)

任意の名前で作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/9ed3eb35-973b-7171-7516-67d552ee319b.png)

以下のように作成されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/a71ac771-d21c-2013-e775-1a8709903bc8.png)

##新規レポートを作成する
「ファイル(F)」 - 「新規(N)」 - 「Jasper Report」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/5154620a-c14c-02e0-3224-8fe8c5a7b366.png)

レポートの形式を選択して「次へ」を押下します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/ac41a9a0-4587-f6a1-5e47-96b11ad8764d.png)

親フォルダの選択、ファイル名を入力して「完了」を押下します。
※今回はexampleパッケージ内に作成します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/380a3b7e-ea0e-de32-b4a3-cc1a6c3ec8b5.png)

白紙のレポートが作成されて、レイアウティング画面が開きます。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/c7290958-3a38-9c33-9f57-69db30f4d7de.png)

##画面の構成を見てみる
レポートを新規作成すると、下のような画面になっています。
アウトラインやパレットから必要なエレメントをどんどん配置していきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/bfe07249-4720-b634-4f94-fbd2fe400b2e.png)

各エレメントのプロパティで、サイズ、罫線、フォントなどを決めることができます。
式を設定し、関数を使用した値を出力することもできます。
工夫次第で、かなり凝ったデザインを作成することも可能です。(センス次第)
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/a8c1c2d4-995b-c6d8-a331-3b8f773e5e1f.png)


#2.MySQLへの接続設定方法
「ファイル」 - 「新規」 - 「Data Adapter」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/eec6ed87-a322-7f2e-f142-4a3495c72718.png)

任意の名前で作成します。
(今回は、exampleパッケージ内に作成しておきました。ほんと破たんの構成考えて作成しないとダメです。)
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/0df3ebee-4cbb-a5f5-e718-1cf334f9e512.png)

JDBCコネクションを選択し、「次へ」を押下します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/a60ffd75-a990-8810-952e-61a9d9e2cbbe.png)

接続名(任意)、JDBCドライバー、JDBC Url、ユーザー名、パスワードを指定します。
　JDBCドライバー：com.mysql.jdbc.Driver
　JDBC Url：jdbc:mysql://[ホスト名(localhostなど)]/[DB名]
　ユーザー名：指定したDBに接続するユーザー名
　パスワード：接続パスワード
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/66b4b243-a469-ae2b-0a38-806d77e85b70.png)

ドライバー・クラスパスタブに移動し、パスを追加する
※使用するドライバーはあらかじめ取得しておく必要があります。
　説明の必要もないかと思いますが、、、
 「MySQL JDBCドライバ」等とググるとすぐダウンロードできるでしょう。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/0fce2b45-f3a3-d81c-70f2-8a2fef3a490c.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/130367/4a528d30-9da6-7714-1b26-7f29e66a76a4.png)

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

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

#3.データ取得とレポートへの表示
レポートのレイアウティング画面にて、
画面右上のDATAADDAPTERマークを押下し、クエリーダイアログを起動します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/f5abcc68-ee3a-3a62-a137-8c7047088f8b.png)

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

読み込んだフィールドのClass Typeを確認して「OK」を押下します。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/aa7fd536-6b6c-fb06-e91b-0078e227b78a.png)

フィールドとして使用できるようになります。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/054508d6-16e7-b3c3-10b7-0ca755af8ab1.png)

プレビュータブで、DBへ接続し、データ取得を確認できました。
![image](https://qiita-image-store.s3.amazonaws.com/0/130367/f13b35e5-2e41-8186-c75c-408dd1991c0a.png)


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

今回は以上です。