JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
■JSONぶらり旅 json型DBからのデータ検索
サーバー側プログラムも前回作ったものをできるだけ利用しています。
前回と異なる(追加された)部分だけを説明します。
2-1)コントローラ作成
コントローラクラス
src/main/java/jp/dip/arimodoki/cntl/DoughnutChart2.java

基本的には前回と同じですが
リクエストマッピング名や、返却view名が変更になっています。
DoughnutChart.java と違うところだけを赤字で表示しておきます。
2-2)グラフデータ作成ビジネスロジック(DB検索)作成
グラフデータを作成するためのビジネスロジッククラスです。
前回と違って、今回は真面目にDBから検索するので、
SQLMapperが追加され、前回の固定データは無くなっています。
src/main/java/jp/dip/arimodoki/blogic/BlChartImpl.java
今回は使用しませんが、DBからJSON文字列の配列を受け取りたい場合の
サンプルコードをメソッドの最後に参考として載せておきます。
ロギングのみで実際の動作には無関係です。
2-3)Mapperインターフェース作成
DB検索のマッパーインターフェースです。
指定された分類IDからDBを検索し、JSON文字列を返却します。
src/main/java/jp/dip/arimodoki/mapper/GraphMapper.java
今回は使用しませんが、DBからJSON文字列の配列を受け取りたい場合の
サンプルメソッド「String[] getGraphList()」を参考として載せておきます。

 

2-4)SQL Mapper定義ファイル作成
WebContent/WEB-INF/mappers/GraphMapper.xml
グラフ情報テーブル(tbl_graph)を検索するMapperです。
json型のカラムを指定する場合は、特殊な記述 "->>" が必要となり
これをXMLで指定すると、XMLタグと判断されてしまうため、
SQL文を <![CDATA[  ]]> で囲ってやる必要があります。
あと、検索フィールドの型が数値型(int)のような場合でも、検索キーは文字列型(string)で指定しないと
MyBatisでエラーとなります。

今回は使用しませんが、DBからJSON文字列の配列を受け取りたい場合の
サンプルSQL「getGraphList」を参考として載せておきます。

 

いかがでしたか?
現時点では、テーブルカラムの型を json(jsonb)型で指定する
確固とした理由はあまり見当たらないのですが
将来性に期待したいといったところでしょうか?(わくわく)。