■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)型で指定する 確固とした理由はあまり見当たらないのですが 将来性に期待したいといったところでしょうか?(わくわく)。 |
JSONサンプル view(HTML) ![]() |
JSONサンプル コントローラ |