Edited at
JavaFXDay 4

JavaFX8でDatabaseを扱いたいけど未だできない

More than 1 year has passed since last update.

JavaFXアドペントカレンダーに参戦します。

1日目に投入しようと書きましたが埋まってました。

せっかくなので12月4日の記事として参戦します。


JavaFXでCRUDアプリ

日本語テーブルなDatabaseのデータをまともに読めるのがJDBCかODBCしかない。

それから何とかGUIのアプリを作ろうと奔走しております。

メインDatabaseがIBMのDB2じゃない方なので繋ぐにしても色々辛いです。

JPAもどうせ文字化けするんだろ?

と思ったらサクッと動いてしまいました。

JPQLは謎の文字列になりますが、何とか動きます。

よし、JavaFXでGUIだ!

という機運が僕の中で沸き立ってきたのですが、

何せ文献が少なくて困っております。

桜庭氏のJava技術最前線とかも見ているんですが、部品の紹介なんです。

JavaFXでデータベースをJPAでCRUD操作できるアプリのサンプルがなかなか見つからないんです。

ゲームを作ろうとする人が多いからなのかなぁ。


CRUDっぽいもの

一番近いものでJavaFX8 Tutorial - code.makery をやってみました。

基本的にStringProperty等のProperty Memberを持っているObjectの追加、修正、削除しかありませんでした。

XMLに保存するとかもあったんですが、

JPAならどうすんねん!

という疑問は解消されず。

JPAは古い。

「JAX-RS! JAX-RS!」 ってことなんでしょうか。


JPAとJavaFX

はじめての JavaFX エンタープライズ・アプリケーション : JavaFX と JPA で実装するアプリケーション

JavaFX でデータベースに簡単にアクセスできるという事実

をやってみました。

GUIの部分も全てCodeで書かれているのでFXMLで楽したい僕にはちょっと違うなと思ったのですが。


  • EntityをNetBeansがDBから自動生成

  • Controllerも自動生成してくれる

  • FXCollections.observableArrayListがJPAで取得したDatabaseのListをObservableArrayListに変換してくれる

という知見を得ました。

何処のコードを参照したか忘れたけど、

DataとTableViewのColumnの紐づけは下記のように書けば簡単だということが分かった。

itemnameColumn.setCellValueFactory(new PropertyValueFactory<>("商品名1")); 


Youtube

意外なことにJavaFXのTutorialはインド人とかがガンガン英語で上げているようです。

Ram Alapure

DB操作から帳票まで一通りできるようだけどFXML一行も書いていないんですが…。

多分参考になる部分があるんだろうけど見切れるかなぁ…。

Githubにソースも転がっているみたい。

Java FX Hibernate JPA PersonData Program Java Training 2016

JPA部分がHibernateだけど参考になるかもしれない。

JavaFX+Mysql+JPA in Netbeans

この動画だけでサンプルプログラムを作り上げてしまう手際の良さ。


現在のソース

これらを参考に現在、サンプルを作っているけど、

表示はできているけど編集ができてないです。

意識低いエンジニアなので、GithubにPushはNetBeansにお任せ。

https://github.com/arachan/inputdata


血迷った?

あまりにもどうしようもないと思い下記の洋書買っちゃった。

多分、今日届いて妻がビックリするはず。

Learn JavaFX 8

うーん、1200ページの重み。

分厚い。

JavaFX_Book.png