前章でSelectを実行して表示してみましたので、少し加えてCRUDしてみましょう。
MVCをご存じでしょうか。以前やっていますので、Servletでデータベースを読んでください。
MVCのためのModelを作る
Model,View,Cotrolを組み合わせて作っていきます
JavaBeansでMVCしていく
今回扱うテーブルは、前回の章で扱ったshohinテーブルです。主キーがshohin_idでshohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubiの項目があります。
これをやり取りするクラスを作りましょう。
作る場所としてフォルダーを作っていきます。
Mainの階層の下にmodelフォルダーを作り、そこにShohinData.javaでクラスを作ります。daoはこれから作っていきます。
フィールドとコンストラクタとセッターゲッターです。非常に単純です。
実は、VsCodeでセッターゲッターは簡単に作れます。フィールドを宣言したら、その下で右クリック ソースアクション->Generate getter and setter を選択するだけです。
DAOを作る
前回作ったMain.javaは、その中でデータベースへの接続、SQLの発行、内容表示、クローズをやっています。これをメインでやってしまうと、それぞれのRead,Updateがメインの中で煩雑に混じってしまうので、それをそれぞれのソースに分けて、それぞれでオープン、操作、クローズをするようにするのがDAOです。
まずはSelect文を発行している前章の内容をListDAO.javaというソースにまとめてdaoフォルダーに作成します。
今後作っていくファイルについてもまとめて紹介しておきます。
ListDAO.javaをMain配下daoフォルダーに作ります。
select文が以前と変わっています。今回使ったテーブルのデータがところどころ実験のためにNULLで抜けているので、普通に読み込むとエラーで止まってしまいます。そこでcoalesceを使って変換しています。
executeQueryで読み込んだレコードセットを.netx()で回して先ほど作成したShohinDataクラスに詰め込んでArrayListを作り、呼びもとに返しています。
同様に、Insert,Update,Deleteに関してもDAOを作成しておきましょう。
このように一度DAOを作っておけば、その応用でほかのDAOを作ることができます。
つづいてUpdateをやってみましょう
次は、delete行います。今回は1でtrueとしてますが、1以上にしても大丈夫です。
これらを組み立てる
daoができたので、これらをつないでいきましょう
modelにLogic.javaを追加する
以前のMainからListDAOを作りましたが、するとMainにはデータベースに関することを書かなくて済むようにできるはずです。
今回はmodelにLogic.javaを作成して、そこからDAOを呼び出すようにします。そしてMainからこのLogic.javaを呼び出します。
これで4つのLogic.javaができましたので、これをMainから呼び出します。
今回は単純のためにフォーム画面は作りません。コマンドプロンプトで実行します。
Select,Insert,Update,Deleteを選択してもらい、必要がデータの入力して、結果を表示してまたループに戻るようにします。
コメントにもあるように javac Main.javaでコンパイルしますが、パッケージのコンパイルが完全ではないようなので、それぞれコンパイルした方がよいと思います。mavenでやれば管理できると思いますが、今回はやっていません。
コマンドプロンプトからの入力にしていますので、Scannerから Shift-JISで入力しています。これをしないと文字化けします。
さて、これでCRUDができました。教科書のサンプルはPostgreSQLですので、それと合わせて参考にしてください。