/my-address-search

Spring Boot 2 + Thymeleaf + Hibernateのいろいろ詰め合わせ

Primary LanguageJavaOtherNOASSERTION

前提条件と前準備

Maria DB 10.4
Java 8
Spring Boot 2

とりあえず使っているものは
Thymeleaf
Hibernate
Vue
JQuery DataTable

起動前に下記の環境変数の設定とデータベース作成を実施する

環境変数

システム環境変数 PATH: C:\Program Files\MariaDB 10.4\binを追加

ユーザとデータベースの作成

下記はbash前提 Windowsの場合はGit Bashが使える(mysqlでうまくいかない場合は winpty mysql)

$ mysql -uroot -proot
CREATE USER 'demo'@'localhost' IDENTIFIED BY 'demo';
GRANT ALL PRIVILEGES ON *.* TO 'demo'@'localhost' IDENTIFIED BY 'demo' WITH GRANT OPTION;
FLUSH PRIVILEGES;

CREATE DATABASE `my_address_search` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER demo IDENTIFIED BY 'demo';
GRANT ALL ON my_address_search.* TO demo@'%' IDENTIFIED BY 'demo';

Flyway Tips

Flywayを使うと自動で、flyway_schema_historyというディレクトリが作成される
参考: http://www.kojion.com/posts/806

郵便番号データについて

http://zipcloud.ibsnet.co.jp/
元のken-all.csvは様々問題があるので、よくある前処理を事前に行ってくれているCSVを利用しています。

ログインユーザ

ID: demo@example.com
PASSWORD: demo

起動したらデータ投入

cd my-address-search/src/main/resources/db/data
bash import_x-ken-all.sh

JQuery DataTablesメモ

https://datatables.net/manual/server-side
https://github.com/darrachequesne/spring-data-jpa-datatables
https://frontbackend.com/thymeleaf/spring-boot-bootstrap-thymeleaf-datatable

デフォルトでは
http://localhost:8080/foo?draw=1&column[0][data]=bar&order[0][column]=0&order[0][dir]=asc&start=100&length=100&search[value]=&search[regex]=false
のようなクエリが生成される
この中で、配列の配列(というより配列のハッシュなのだが…)column[0][data]はSpringでは対応していないので、column[0].dataのように変換してあげる必要がある。
こうすればJava側でList<T>で受け取れる。
そのために、jquery.spring-friendly.jsを使用する。

気が向いたらやりたいこと

■編集・削除

■Vue版でのソート
https://github.com/xaksis/vue-good-table

■その他手抜き実装とか不備とか修正