diff --git a/spring-data-example/.gitignore b/spring-data-example/.gitignore
deleted file mode 100644
index d247111..0000000
--- a/spring-data-example/.gitignore
+++ /dev/null
@@ -1,2976 +0,0 @@
-/target
-/bin
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
-/target
diff --git a/spring-ibatis-example/pom.xml b/spring-ibatis-example/pom.xml
new file mode 100644
index 0000000..dbdee5c
--- /dev/null
+++ b/spring-ibatis-example/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+
+ net.aimeizi
+ maven-framework-project
+ 1.0.0
+
+ spring-ibatis-example
+ spring-ibatis-example
+ http://maven.apache.org
+
+ UTF-8
+ 1.7.5
+ 1.0.12
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${slf4j.version}
+ runtime
+
+
+
+ org.slf4j
+ jcl-over-slf4j
+ ${slf4j.version}
+ runtime
+
+
+
+ org.slf4j
+ jul-to-slf4j
+ ${slf4j.version}
+ runtime
+
+
+
+ com.googlecode.log4jdbc
+ log4jdbc
+ 1.2
+
+
+
+
+ org.apache.ibatis
+ ibatis-sqlmap
+ 2.3.4.726
+
+
+
+ mysql
+ mysql-connector-java
+ 5.1.9
+
+
+
+ cglib
+ cglib
+ 2.2.2
+
+
+
+ asm
+ asm-util
+ 3.3.1
+
+
+
+ opensymphony
+ oscache
+ 2.4
+ compile
+
+
+
+ javax.jms
+ jms
+
+
+
+
+ org.springframework
+ spring-context-support
+ 3.2.5.RELEASE
+
+
+ org.springframework
+ spring-orm
+ 3.2.5.RELEASE
+
+
+ org.springframework
+ spring-tx
+ 3.2.5.RELEASE
+
+
+ org.springframework
+ spring-test
+ 3.2.5.RELEASE
+
+
+ org.springframework
+ spring-jdbc
+ 3.2.5.RELEASE
+
+
+ com.h2database
+ h2
+ 1.3.170
+
+
+
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/ProductDao.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/ProductDao.java
new file mode 100644
index 0000000..c4ddf53
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/ProductDao.java
@@ -0,0 +1,18 @@
+package org.spring.ibatis.example.dao;
+
+import java.util.List;
+
+import org.spring.ibatis.example.model.Product;
+
+public interface ProductDao {
+
+ List listAll();
+
+ List selectLikeName(String name);
+
+ boolean save(Product product);
+
+ boolean update(Product product);
+
+ Product getModel(int id);
+}
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/impl/ProductDaoImpl.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/impl/ProductDaoImpl.java
new file mode 100644
index 0000000..9585c5a
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/dao/impl/ProductDaoImpl.java
@@ -0,0 +1,85 @@
+package org.spring.ibatis.example.dao.impl;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.spring.ibatis.example.dao.ProductDao;
+import org.spring.ibatis.example.model.Product;
+import org.springframework.stereotype.Repository;
+
+import com.ibatis.sqlmap.client.SqlMapClient;
+
+@Repository(value="productDaoImpl")
+public class ProductDaoImpl implements ProductDao {
+
+ private SqlMapClient sqlMapClient;
+
+ public SqlMapClient getSqlMapClient() {
+ return sqlMapClient;
+ }
+
+ //将sqlMapClient注入
+ @Resource(name="sqlMapClient")
+ public void setSqlMapClient(SqlMapClient sqlMapClient) {
+ this.sqlMapClient = sqlMapClient;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ public List listAll() {
+ try {
+ return getSqlMapClient().queryForList("org.spring.ibatis.example.model.Product.selectAll");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+ public boolean save(Product product) {
+ try {
+ Object object = getSqlMapClient().insert("org.spring.ibatis.example.model.Product.save", product);
+ return object==null?false:true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+
+ public boolean update(Product product) {
+ try {
+ int n=getSqlMapClient().update("org.spring.ibatis.example.model.Product.update", product);
+ return n==1?true:false;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+
+ public Product getModel(int id) {
+ try {
+ return (Product) getSqlMapClient().queryForObject("org.spring.ibatis.example.model.Product.selectById", id);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List selectLikeName(String name) {
+ try {
+ return getSqlMapClient().queryForList("org.spring.ibatis.example.model.Product.selectProductLikeName",name);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Category.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Category.java
new file mode 100644
index 0000000..c879eb8
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Category.java
@@ -0,0 +1,23 @@
+package org.spring.ibatis.example.model;
+
+import java.io.Serializable;
+
+@SuppressWarnings("serial")
+public class Category implements Serializable {
+
+ private int id;
+ private String name;
+ public int getId() {
+ return id;
+ }
+ public void setId(int id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Product.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Product.java
new file mode 100644
index 0000000..2f6996c
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/model/Product.java
@@ -0,0 +1,55 @@
+package org.spring.ibatis.example.model;
+
+import java.io.Serializable;
+
+@SuppressWarnings("serial")
+public class Product implements Serializable {
+
+ private int id;
+ private String name;
+ private float price;
+ private String description;
+
+ private String categoryid;
+
+ private Category category;
+
+
+ public int getId() {
+ return id;
+ }
+ public void setId(int id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public float getPrice() {
+ return price;
+ }
+ public void setPrice(float price) {
+ this.price = price;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public String getCategoryid() {
+ return categoryid;
+ }
+ public void setCategoryid(String categoryid) {
+ this.categoryid = categoryid;
+ }
+ public Category getCategory() {
+ return category;
+ }
+ public void setCategory(Category category) {
+ this.category = category;
+ }
+
+}
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/ProductService.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/ProductService.java
new file mode 100644
index 0000000..92bdc82
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/ProductService.java
@@ -0,0 +1,18 @@
+package org.spring.ibatis.example.service;
+
+import java.util.List;
+
+import org.spring.ibatis.example.model.Product;
+
+public interface ProductService {
+
+ List listAll();
+
+ boolean save(Product product);
+
+ boolean update(Product product);
+
+ Product getModel(int id);
+
+ List selectLikeName(String name);
+}
diff --git a/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/impl/ProductServiceImpl.java b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/impl/ProductServiceImpl.java
new file mode 100644
index 0000000..7a6808f
--- /dev/null
+++ b/spring-ibatis-example/src/main/java/org/spring/ibatis/example/service/impl/ProductServiceImpl.java
@@ -0,0 +1,45 @@
+package org.spring.ibatis.example.service.impl;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.spring.ibatis.example.dao.ProductDao;
+import org.spring.ibatis.example.model.Product;
+import org.spring.ibatis.example.service.ProductService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service(value="productServiceImpl")
+public class ProductServiceImpl implements ProductService {
+
+ @Resource(name="productDaoImpl")
+ private ProductDao productDao;
+
+ @Transactional(propagation=Propagation.REQUIRED)
+ public List listAll() {
+ return productDao.listAll();
+ }
+
+ @Transactional(propagation=Propagation.REQUIRED)
+ public boolean save(Product product) {
+ return productDao.save(product);
+ }
+
+ @Transactional(propagation=Propagation.REQUIRED)
+ public boolean update(Product product) {
+ return productDao.update(product);
+ }
+
+ @Transactional(propagation=Propagation.REQUIRED)
+ public Product getModel(int id) {
+ return productDao.getModel(id);
+ }
+
+ @Override
+ public List selectLikeName(String name) {
+ return productDao.selectLikeName(name);
+ }
+
+}
diff --git a/spring-ibatis-example/src/main/resources/init.sql b/spring-ibatis-example/src/main/resources/init.sql
new file mode 100644
index 0000000..018ef1e
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/init.sql
@@ -0,0 +1,25 @@
+
+DROP TABLE IF EXISTS product;
+
+DROP TABLE IF EXISTS category;
+
+CREATE TABLE category (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ name varchar(20) DEFAULT NULL,
+ PRIMARY KEY (id)
+);
+
+insert into category(id,name) values (1,'手机'),(2,'平板电脑'),(3,'笔记本');
+
+CREATE TABLE product (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ name varchar(20) DEFAULT NULL,
+ price float DEFAULT NULL,
+ description varchar(200) DEFAULT NULL,
+ categoryid int(11) DEFAULT NULL,
+ PRIMARY KEY (id),
+ CONSTRAINT fk_product_category FOREIGN KEY (categoryid) REFERENCES category (id)
+);
+
+
+insert into product(id,name,price,description,categoryid) values (1,'ipad2',3000,'ipad2',2),(2,'ipad3',4000,'ipad3',2),(3,'ipad4',3000,'ipad4',2),(4,'SONY手机',79,'SONY手机,手机中的战斗机!',1),(5,'Surface平板电脑',4680,'Surface平板电脑',2);
diff --git a/spring-ibatis-example/src/main/resources/jdbc.properties b/spring-ibatis-example/src/main/resources/jdbc.properties
new file mode 100644
index 0000000..8ed1e27
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/jdbc.properties
@@ -0,0 +1,4 @@
+driverClassName=net.sf.log4jdbc.DriverSpy
+username=sa
+password=
+url=jdbc:log4jdbc:h2:./target/ibatis
diff --git a/spring-ibatis-example/src/main/resources/logback.xml b/spring-ibatis-example/src/main/resources/logback.xml
new file mode 100644
index 0000000..dcc6bd9
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/logback.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+ target/maven-framework-project.log
+
+ target/maven-framework-project.%d{yyyy-MM-dd}.log
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Category.xml b/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Category.xml
new file mode 100644
index 0000000..989d613
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Category.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Product.xml b/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Product.xml
new file mode 100644
index 0000000..554d8d3
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/org/spring/ibatis/example/model/Product.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into product (name,price,description,categoryid) values (#name#,#price#,#description#,#categoryid#)
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/resources/oscache.properties b/spring-ibatis-example/src/main/resources/oscache.properties
new file mode 100644
index 0000000..68f3182
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/oscache.properties
@@ -0,0 +1,11 @@
+#不缓存到内存
+cache.memory=false
+
+#缓存持久化实现类,磁盘持久化监听器
+cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
+
+#缓存磁盘路径,以后注意观察该目录生成的内容
+cache.path=e:\\OSCache\\cache
+
+#选择一种缓存算法,还可选 FIFOCache、UnlimitedCache
+cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/resources/spring-ibatis.xml b/spring-ibatis-example/src/main/resources/spring-ibatis.xml
new file mode 100644
index 0000000..0d09ac3
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/spring-ibatis.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-ibatis-example/src/main/resources/sqlMapConfig.xml b/spring-ibatis-example/src/main/resources/sqlMapConfig.xml
new file mode 100644
index 0000000..01eda02
--- /dev/null
+++ b/spring-ibatis-example/src/main/resources/sqlMapConfig.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-ibatis-example/src/test/java/org/spring/ibatis/example/service/impl/ProductServiceImplTest.java b/spring-ibatis-example/src/test/java/org/spring/ibatis/example/service/impl/ProductServiceImplTest.java
new file mode 100644
index 0000000..acdf81b
--- /dev/null
+++ b/spring-ibatis-example/src/test/java/org/spring/ibatis/example/service/impl/ProductServiceImplTest.java
@@ -0,0 +1,73 @@
+package org.spring.ibatis.example.service.impl;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.spring.ibatis.example.model.Product;
+import org.spring.ibatis.example.service.ProductService;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+
+@ContextConfiguration(locations={"classpath:spring-ibatis.xml"})
+@RunWith(value=SpringJUnit4ClassRunner.class)
+public class ProductServiceImplTest {
+
+ @Resource(name="productServiceImpl")
+ private ProductService productService;
+
+ @Test
+ public void listAll(){
+ List lists=productService.listAll();
+ for (Product product : lists) {
+ System.out.println(product.getName()+"\t"+product.getDescription()+"\t"+product.getCategory().getId()+"\t"+product.getCategory().getName());
+ }
+ }
+
+ @Test
+ public void save(){
+ Product product=new Product();
+ product.setName("ipad2");
+ product.setPrice(3000.f);
+ product.setDescription("ipad2");
+ product.setCategoryid("1");
+ boolean b=productService.save(product);
+ System.out.println(b);
+ }
+
+
+ @Test
+ public void update(){
+ Product product=productService.getModel(3);
+ product.setName("戴尔");
+ product.setDescription("戴尔笔记本");
+ boolean b=productService.update(product);
+ System.out.println(b);
+ }
+
+
+ @Test
+ public void getModel(){
+ Product product1=productService.getModel(2);
+ System.out.println(product1.getName()+","+product1.getCategory().getName());
+ Product product2=productService.getModel(2);
+ System.out.println(product2.getName()+","+product2.getCategory().getName());
+ Product product3=productService.getModel(2);
+ System.out.println(product3.getName()+","+product3.getCategory().getName());
+ Product product4=productService.getModel(2);
+ System.out.println(product4.getName()+","+product4.getCategory().getName());
+ }
+
+
+
+ @Test
+ public void selectLikeName(){
+ List lists=productService.selectLikeName("pad");
+ for (Product product : lists) {
+ System.out.println(product.getName()+"\t"+product.getDescription()+"\t"+product.getCategory().getId()+"\t"+product.getCategory().getName());
+ }
+ }
+}
\ No newline at end of file