diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e1e2be5a1c328a986a55d6b259f3946d3f7a8a52 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../:\Project\Java\back-practice1\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..efd261bf79519c997d1c2ac4154798d551f022dd --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +demo \ No newline at end of file diff --git a/.idea/back-practice1.iml b/.idea/back-practice1.iml new file mode 100644 index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824 --- /dev/null +++ b/.idea/back-practice1.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..e65307f0f75eda1e22b7012fb351d1aa0525841c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..42a70e8ffbc6b1de89205fb08f030901bb93c73e --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a2f139ce25c6f225e0cb5fb199704f51273de00 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..cae83174b4e3a9e8eaa15edc085bf17ca291108b --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..ce491ade1ad51be62d34f6e3d4add62b4a4f856b --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d20cadb125b983195e1de95ad35c3a94fe96fd4 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..1a12fe8f48bdb0d5f531a44e75918286f3636ed6 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f0132fed63fd2771ab35ee0abe3a9fab8e780b9 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac99f6250e200b9cc227c550464d0e8b895f7899 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..03a71722be9087267ffac103a5ce8c67609705c4 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..aaa84f25aef922837a1f9b565e3958ebdfb841b5 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..e25b882c25e64bbdf2b40d9a50c012c02f77375b --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..3056db882423561ca037dab9a1da07df1fe16254 --- /dev/null +++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000000000000000000000000000000000000..b8581a6f5eef96c4979f258063e7c7c8d633f024 --- /dev/null +++ b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..9314c366fccdc85267dd4c714c4da5d1882d3f02 --- /dev/null +++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml b/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml new file mode 100644 index 0000000000000000000000000000000000000000..84eb1158f5c42c261b64b271b61dc73f16becf45 --- /dev/null +++ b/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..13afda2962f972e7f2e35e97e6a0dc52d8e90bbb --- /dev/null +++ b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml b/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml new file mode 100644 index 0000000000000000000000000000000000000000..74c8a816401f4b8ca552af3da24f9c6bc3ba51fa --- /dev/null +++ b/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..2dd368e73aa712b28f34d1d66a3ca51ca5481904 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..5e9d776fac2065244754a9fcc9095ae83e4ad397 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c341bd5a85ebceaaef80d1025273399563effd8 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a993ed54653f3fba22bfb8150df6bcd450a0f7b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..584544aad7251c0c6cc0945d2af3fe203a854a54 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..b989eb7a079d45c069d1b5843c83adc240d54c6e --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml new file mode 100644 index 0000000000000000000000000000000000000000..d5eed903d22d0b46f0b59ffa8a1237d8762558ea --- /dev/null +++ b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..be90656e69bb0356d5fbed85d2639aeac6c5f16a --- /dev/null +++ b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..cba9dd244f222ce7ecbdcab4c7f9621a57fe1a67 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..04213f73868a39471664c431bdb5073055eb36d5 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c1fc592b4b34799de7d11d6015d0bd38bdcd32b --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..c957e32807fa3c2eee4a4a940cc65a314d41dcce --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..b67ac50fffe324a090e965990ae04edeb11e0682 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..8157bb41434dee18cfccd97687a3a9a847c9751c --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..a17f648a6d6786a7085bef611594988964d8c0ca --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..28b86825096875ba9af3c9e3bc7a633596dc64a4 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..700b41b8e007c3ca74fffaa32d385995afdd6a7a --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae5c0b5dbc60404fb53687258318a0e0085dfac8 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..5272a362dce06c1179dd1bd9a845372890e0bcfa --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..4578d1bda76d5fe926295bbe58a653849db9dc96 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6997871a5c64b503e08b99869c0878b5832a16e --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa3fdcf9edc2ed49054e86df0748b66bb99d531b --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..77a90b8bcc585e70dda96a5d5f601a4813c132a3 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..dddd497e46a8a598bb50a0e6459c69ee9dd1c756 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..ece1eae30d8f2a44409b0a299c5399b917f87843 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7a65df538dccc59efc3e84c014bfed4487ee322 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..499eb00485dfcdd6dae723d9e864bd808f06a0f5 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..264c53fe5c55c6dc54bfc1303c578f2c673b23bd --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..0946e78d0dcd830670951a1238904e71592b92d9 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml b/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..7be49ba84d0bc0d0b07e3f6fc01479b0f931f1c9 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9c56a55356046af0c1a2e84c451d26967e4d834 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..af25262df1ce25feb669e513b79d38c567a83a09 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2a721a20cd972426fbb0561d22ccec45025928c --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ac1c42c6bddbae8d8a2b945ac4b3d58ed4807e2 --- /dev/null +++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..03e3cae97a5a87ed119a0dc470b9bba93f8b4f1d --- /dev/null +++ b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b5496ff097a7fd9b72025c4acf36cda1416eda3 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..987e7d4e2ee35a406ef9142de7027edc2617018a --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..4910ca992b01066ca948ed251061a7555889f545 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..85ab9ade17773b1a6f962816723f1cc0fb194a29 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..8675273d91e2b3f4aac3913358060ce49ddcfb91 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..341720888f321babd7e543f0c50949dfd9401826 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..f19b408dff5fa904755fc05d36ff5c91ffa7c164 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf13209210a4cd883e073c3125b06c2ee734895a --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..49e3f235367d37668bbcdeb9c6fff4818ba79110 --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..fab145936c967b8466be8a97cfcf31ea3ccfff2b --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3593055009ef95f37be0a722680aca383d8aff8 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..879dc4197e4d1e04a8347a7492ac27aabc470184 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..8161289eaca3b7731b5c4527b0ece0e4311d5b35 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6613def613e219a944b47f973641c7b0485b04bf --- /dev/null +++ b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbc1b1635a2c69174f8bea7d6306f5175015adc0 --- /dev/null +++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml b/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..67127c293eb56dbb26c1cc69af4b1a1cd58802ec --- /dev/null +++ b/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml b/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..c21f786356a94708dc6961abbab71a9e701691d6 --- /dev/null +++ b/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..72b596efe4e37b97153d293b7e6354e93d7b07f6 --- /dev/null +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..f17253bf81c48360905fb478f634536f0202bf5f --- /dev/null +++ b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..c4c54d6d5452b5e2f25085adb2d2b98c38ae4731 --- /dev/null +++ b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml new file mode 100644 index 0000000000000000000000000000000000000000..a758eac2a8892d6ba631117be7843f1a0f50e00f --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml new file mode 100644 index 0000000000000000000000000000000000000000..e5a84fb0f244ebd100405953530d660b77c6030b --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..02efba5d23e6fef7976e3067bf066548d5722e30 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..549914c908c4ec5eabf57a7c585cb2620cf1591b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..5f4056b005e38ace6ac292645f2ddfac06d86c85 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..a4a264f3bbb64ef70b0970923813b34b9f9aa7a6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..165a90762776a5e8bd9ee967e6dbf188ed8221c6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..cdc31b4f3ae6bdb9d8aa2eded04efa87c7c4f152 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..1686576d189f24fccf7489038f3e50dd4b740e6f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..121a72dd99cdc4964713d493731635644f608041 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a378ca5cae1abfa3f329b5d9b4a4541ef95bf2a --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..dc383639b6d8819934bc38d47452da34c4929dbd --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..737fa4fa1fa180faa193aac2c5617889eabe4420 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..7021afaab71363018016f2bf623e22d40da18af8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..d82d93d03d559f9e2952d8ec004e0ef034e923b7 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..f79fe6bc3891db6c8ecc3c260285278eb3892647 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..efe1b25ca34ce4f2e9090cbaed7ada51183ff5a8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1d3f7ec886a85c9dd4a7cc4bbfa05d71490749b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..95086d7dfca140333460dd05106831acd672fa15 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..049f2733fc5d53f45a7b386c61533dde63f9ffe0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c7b5e47c573a7d75cb34b4bbc4d4e4d9df4099d --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..86128a84edd0427952ffbd8abe7073f23ccc1d57 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..99ae0af19f331783049cb0e64d5b31131e65f240 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..dea8de9249698d1ef8d5fcf229730298bbfb777e --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..1434cb9f13213c73ad2c39041b6e4c4a61803475 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..0ba448141bced39eb975f23cade79d083c5739b5 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b7ef9931ec83eb8e78a5d69edaf29ed1c2c968f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..62efcd0336cdc81809a576a39a6dc82e3d710a4b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..b76451908e1f6ef75b95d811049cd3721e55b70b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..49b862758be9c32b9aa970743d5000524ca77df8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..c50fc54d02dce9a9afb631b18412205101bcb790 --- /dev/null +++ b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8715299801077ec827cbb750a86478adde4ab7a --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..f096b604a7ded6b0ce618e2d5b992b993635edd3 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0710ca34164b7565a6886c4da54f8dad756b2a8 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/library/.gitignore b/library/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a1c2a238a965f004ff76978ac1086aa6fe95caea --- /dev/null +++ b/library/.gitignore @@ -0,0 +1,23 @@ +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* diff --git a/library/.idea/.gitignore b/library/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7b9f5826a7b0ed8f3cbdb6b736e9e6dd6fe26ee9 --- /dev/null +++ b/library/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../:\JAVA\IDEA_Project\library\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/library/.idea/compiler.xml b/library/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..00db66e2f74aac254bae5fab2a49ba7001cb0b5b --- /dev/null +++ b/library/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/dataSources.xml b/library/.idea/dataSources.xml new file mode 100644 index 0000000000000000000000000000000000000000..878b2ecb746c4ec19287aade4148b0437e546331 --- /dev/null +++ b/library/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/library/.idea/dataSources/7e92a23d-bc25-4e0c-bb09-ce55dbf5231c.xml b/library/.idea/dataSources/7e92a23d-bc25-4e0c-bb09-ce55dbf5231c.xml new file mode 100644 index 0000000000000000000000000000000000000000..7dc802f3901121f2d97ffb76d896c0381686ca80 --- /dev/null +++ b/library/.idea/dataSources/7e92a23d-bc25-4e0c-bb09-ce55dbf5231c.xml @@ -0,0 +1,4607 @@ + + + + + 8.0.21 + InnoDB + InnoDB + lower/lower + + + 1 + utf8_general_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + armscii8 + + + armscii8 + 1 + + + ascii + + + ascii + 1 + + + big5 + + + big5 + 1 + + + binary + 1 + + + cp1250 + + + cp1250 + + + cp1250 + + + cp1250 + 1 + + + cp1250 + + + cp1251 + + + cp1251 + + + cp1251 + 1 + + + cp1251 + + + cp1251 + + + cp1256 + + + cp1256 + 1 + + + cp1257 + + + cp1257 + 1 + + + cp1257 + + + cp850 + + + cp850 + 1 + + + cp852 + + + cp852 + 1 + + + cp866 + + + cp866 + 1 + + + cp932 + + + cp932 + 1 + + + dec8 + + + dec8 + 1 + + + eucjpms + + + eucjpms + 1 + + + euckr + + + euckr + 1 + + + gb18030 + + + gb18030 + 1 + + + gb18030 + + + gb2312 + + + gb2312 + 1 + + + gbk + + + gbk + 1 + + + geostd8 + + + geostd8 + 1 + + + greek + + + greek + 1 + + + hebrew + + + hebrew + 1 + + + hp8 + + + hp8 + 1 + + + keybcs2 + + + keybcs2 + 1 + + + koi8r + + + koi8r + 1 + + + koi8u + + + koi8u + 1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + 1 + + + latin2 + + + latin2 + + + latin2 + + + latin2 + 1 + + + latin2 + + + latin5 + + + latin5 + 1 + + + latin7 + + + latin7 + + + latin7 + 1 + + + latin7 + + + macce + + + macce + 1 + + + macroman + + + macroman + 1 + + + sjis + + + sjis + 1 + + + swe7 + + + swe7 + 1 + + + tis620 + + + tis620 + 1 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + 1 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ujis + + + ujis + 1 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + 1 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16le + + + utf16le + 1 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + 1 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + 1 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8mb4 + 1 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + localhost + SELECT + + + + localhost + SHUTDOWN,SUPER +BACKUP_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,SESSION_VARIABLES_ADMIN,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN +SELECT|performance_schema +SELECT|mysql.user + + + + localhost + TRIGGER|sys +SELECT|sys.sys_config + + + + localhost + SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,FILE,REFERENCES,INDEX,ALTER,SHOW DATABASES,SUPER,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,EVENT,TRIGGER,CREATE TABLESPACE,CREATE ROLE,DROP ROLE! + + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + utf8_general_ci +
+ + utf8_general_ci +
+ + utf8_general_ci +
+ + 1 + varchar(97)|0s + + + 2 + varchar(256)|0s + + + 3 + varchar(97)|0s + + + 4 + varchar(256)|0s + + + 5 + varchar(255)|0s + + + 6 + varchar(256)|0s + + + 7 + varchar(3)|0s + 1 + + + 8 + varchar(3)|0s + + + 9 + varchar(3)|0s + 1 + + + 1 + varchar(97)|0s + + + 2 + varchar(256)|0s + + + 3 + varchar(97)|0s + + + 4 + varchar(256)|0s + + + 5 + varchar(255)|0s + + + 6 + varchar(256)|0s + + + 7 + varchar(3)|0s + 1 + + + 8 + varchar(3)|0s + + + 9 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(2048)|0s + 1 + + + 4 + int unsigned|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + longtext|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + varchar(3)|0s + 1 + + + 5 + varchar(3)|0s + 1 + + + 6 + int unsigned|0s + 1 + + + 7 + enum('PAD SPACE', 'NO PAD')|0e + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + int unsigned|0s + 1 + + + 6 + text|0s + + + 7 + varchar(3)|0s + 1 + + + 8 + longtext|0s + + + 9 + bigint|0s + + + 10 + bigint|0s + + + 11 + bigint unsigned|0s + + + 12 + bigint unsigned|0s + + + 13 + int unsigned|0s + + + 14 + varchar(64)|0s + + + 15 + varchar(64)|0s + + + 16 + mediumtext|0s + 1 + + + 17 + enum('', 'PRI', 'UNI', 'MUL')|0e + 1 + + + 18 + varchar(256)|0s + + + 19 + varchar(154)|0s + + + 20 + text|0s + 1 + + + 21 + longtext|0s + 1 + + + 22 + int unsigned|0s + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + + + 5 + json|0s + + + 6 + json|0s + + + 1 + varchar(292)|0s + 1 + + + 2 + varchar(512)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + 1 + + + 5 + varchar(64)|0s + 1 + + + 6 + varchar(64)|0s + 1 + + + 7 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + json|0s + 1 + + + 1 + varchar(255)|0s + + + 2 + varchar(255)|0s + + + 3 + varchar(3)|0s + + + 4 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(8)|0s + 1 + + + 3 + varchar(80)|0s + 1 + + + 4 + varchar(3)|0s + + + 5 + varchar(3)|0s + + + 6 + varchar(3)|0s + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(288)|0s + 1 + + + 5 + varchar(64)|0s + 1 + + + 6 + varchar(3)|0s + 1 + + + 7 + longtext|0s + 1 + + + 8 + varchar(9)|0s + 1 + + + 9 + datetime|0s + + + 10 + varchar(256)|0s + + + 11 + enum('YEAR', 'QUARTER', 'MONTH', 'DAY', 'HOUR', 'MINUTE', 'WEEK', 'SECOND', 'MICROSECOND', 'YEAR_MONTH', 'DAY_HOUR', 'DAY_MINUTE', 'DAY_SECOND', 'HOUR_MINUTE', 'HOUR_SECOND', 'MINUTE_SECOND', 'DAY_MICROSECOND', 'HOUR_MICROSECOND', 'MINUTE_MICROSECOND', 'SECOND_MICROSECOND')|0e + + + 12 + set('REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'NOT_USED_9', 'NOT_USED_10', 'NOT_USED_11', 'NOT_USED_12', 'NOT_USED_13', 'NOT_USED_14', 'NOT_USED_15', 'NOT_USED_16', 'NOT_USED_17', 'NOT_USED_18', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ALLOW_INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NOT_USED_29', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH', 'TIME_TRUNCATE_FRACTIONAL')|0e + 1 + + + 13 + datetime|0s + + + 14 + datetime|0s + + + 15 + enum('ENABLED', 'DISABLED', 'SLAVESIDE_DISABLED')|0e + 1 + + + 16 + varchar(12)|0s + 1 + + + 17 + timestamp|0s + 1 + + + 18 + timestamp|0s + 1 + + + 19 + datetime|0s + + + 20 + varchar(2048)|0s + 1 + + + 21 + int unsigned|0s + 1 + + + 22 + varchar(64)|0s + 1 + + + 23 + varchar(64)|0s + 1 + + + 24 + varchar(64)|0s + 1 + + + 1 + bigint|0s + + + 2 + text|0s + + + 3 + varchar(256)|0s + + + 4 + varchar(268)|0s + 1 + + + 5 + char(0)|0s + 1 + + + 6 + binary(0)|0s + + + 7 + binary(0)|0s + + + 8 + varchar(256)|0s + + + 9 + bigint|0s + + + 10 + varchar(64)|0s + 1 + + + 11 + binary(0)|0s + + + 12 + binary(0)|0s + + + 13 + binary(0)|0s + + + 14 + bigint|0s + + + 15 + bigint|0s + + + 16 + bigint|0s + + + 17 + bigint|0s + + + 18 + bigint|0s + + + 19 + bigint|0s + + + 20 + binary(0)|0s + + + 21 + binary(0)|0s + + + 22 + binary(0)|0s + + + 23 + binary(0)|0s + + + 24 + binary(0)|0s + + + 25 + bigint|0s + + + 26 + varchar(256)|0s + + + 27 + binary(0)|0s + + + 28 + binary(0)|0s + + + 29 + binary(0)|0s + + + 30 + binary(0)|0s + + + 31 + binary(0)|0s + + + 32 + bigint|0s + + + 33 + binary(0)|0s + + + 34 + binary(0)|0s + + + 35 + binary(0)|0s + + + 36 + binary(0)|0s + + + 37 + varchar(256)|0s + + + 38 + varchar(256)|0s + + + 1 + bigint unsigned|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + varchar(64)|0s + + + 6 + bigint unsigned|0s + 1 + + + 7 + bigint unsigned|0s + 1 + + + 8 + varchar(3)|0s + + + 9 + bigint unsigned|0s + 1 + + + 10 + bigint unsigned|0s + 1 + + + 11 + bigint unsigned|0s + 1 + + + 12 + varchar(1024)|0s + + + 13 + varchar(1024)|0s + + + 14 + bigint unsigned|0s + 1 + + + 15 + bigint unsigned|0s + 1 + + + 16 + bigint unsigned|0s + 1 + + + 17 + varchar(64)|0s + + + 18 + varchar(64)|0s + + + 19 + varchar(3)|0s + + + 20 + bigint unsigned|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + varchar(64)|0s + + + 6 + bigint unsigned|0s + 1 + + + 7 + bigint unsigned|0s + 1 + + + 8 + varchar(3)|0s + + + 9 + bigint unsigned|0s + 1 + + + 10 + bigint unsigned|0s + 1 + + + 11 + bigint unsigned|0s + 1 + + + 12 + varchar(1024)|0s + + + 13 + varchar(1024)|0s + + + 14 + bigint unsigned|0s + 1 + + + 15 + bigint unsigned|0s + 1 + + + 16 + bigint unsigned|0s + 1 + + + 17 + varchar(3)|0s + + + 18 + varchar(64)|0s + + + 19 + varchar(3)|0s + + + 20 + bigint unsigned|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + bigint unsigned|0s + 1 + + + 6 + bigint unsigned|0s + 1 + + + 7 + bigint unsigned|0s + 1 + + + 8 + bigint unsigned|0s + 1 + + + 9 + bigint unsigned|0s + 1 + + + 10 + bigint unsigned|0s + 1 + + + 11 + bigint unsigned|0s + 1 + + + 12 + bigint unsigned|0s + 1 + + + 13 + float(12)|0s + 1 + + + 14 + float(12)|0s + 1 + + + 15 + bigint unsigned|0s + 1 + + + 16 + bigint unsigned|0s + 1 + + + 17 + bigint unsigned|0s + 1 + + + 18 + float(12)|0s + 1 + + + 19 + float(12)|0s + 1 + + + 20 + float(12)|0s + 1 + + + 21 + bigint unsigned|0s + 1 + + + 22 + bigint unsigned|0s + 1 + + + 23 + bigint unsigned|0s + 1 + + + 24 + bigint unsigned|0s + 1 + + + 25 + bigint unsigned|0s + 1 + + + 26 + bigint unsigned|0s + 1 + + + 27 + float(12)|0s + 1 + + + 28 + float(12)|0s + 1 + + + 29 + bigint unsigned|0s + 1 + + + 30 + bigint unsigned|0s + 1 + + + 31 + bigint unsigned|0s + 1 + + + 32 + bigint unsigned|0s + 1 + + + 1 + int unsigned|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 1 + int|0s + 1 + + + 2 + int|0s + 1 + + + 3 + int|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 1 + int|0s + 1 + + + 2 + int|0s + 1 + + + 3 + int|0s + 1 + + + 4 + int|0s + 1 + + + 5 + bigint|0s + 1 + + + 6 + int|0s + 1 + + + 1 + int|0s + 1 + + + 2 + int|0s + 1 + + + 3 + int|0s + 1 + + + 4 + int|0s + 1 + + + 5 + bigint|0s + 1 + + + 6 + int|0s + 1 + + + 1 + varchar(192)|0s + 1 + + + 2 + varchar(192)|0s + 1 + + + 3 + varchar(192)|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 7 + int|0s + 1 + + + 8 + int|0s + 1 + + + 1 + varchar(192)|0s + 1 + + + 2 + varchar(192)|0s + 1 + + + 3 + varchar(192)|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 7 + int|0s + 1 + + + 8 + int|0s + 1 + + + 1 + int|0s + 1 + + + 2 + int|0s + 1 + + + 3 + int|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(193)|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 7 + int|0s + 1 + + + 8 + text|0s + + + 1 + varbinary(256)|0s + + + 2 + varchar(512)|0s + 1 + + + 1 + varbinary(256)|0s + + + 2 + varchar(64)|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 1 + varchar(129)|0s + + + 2 + varchar(129)|0s + + + 3 + varchar(129)|0s + + + 4 + bigint|0s + 1 + + + 5 + bigint unsigned|0s + 1 + + + 1 + varchar(129)|0s + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + int unsigned|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 1 + varchar(193)|0s + 1 + + + 2 + varchar(193)|0s + 1 + + + 1 + varchar(18)|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 1 + varchar(337)|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + bigint unsigned|0s + 1 + + + 6 + bigint unsigned|0s + 1 + + + 1 + varchar(337)|0s + 1 + + + 2 + bigint unsigned|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + bigint unsigned|0s + 1 + + + 6 + bigint unsigned|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(193)|0s + 1 + + + 3 + bigint unsigned|0s + 1 + + + 4 + int|0s + 1 + + + 5 + int|0s + 1 + + + 6 + int|0s + 1 + + + 7 + int|0s + 1 + + + 8 + int|0s + 1 + + + 1 + varchar(193)|0s + 1 + + + 2 + varchar(193)|0s + 1 + + + 3 + bigint|0s + 1 + + + 4 + bigint|0s + + + 5 + bigint|0s + + + 6 + float(12)|0s + + + 7 + bigint|0s + 1 + + + 8 + bigint|0s + + + 9 + bigint|0s + + + 10 + float(12)|0s + + + 11 + datetime|0s + + + 12 + datetime|0s + + + 13 + bigint|0s + + + 14 + datetime|0s + + + 15 + varchar(193)|0s + 1 + + + 16 + varchar(193)|0s + 1 + + + 17 + varchar(193)|0s + 1 + + + 1 + int unsigned|0s + 1 + + + 2 + int unsigned|0s + 1 + + + 3 + varchar(4001)|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + varchar(192)|0s + 1 + + + 6 + varchar(192)|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(655)|0s + 1 + + + 3 + int|0s + 1 + + + 4 + int|0s + 1 + + + 5 + bigint|0s + 1 + + + 6 + varchar(12)|0s + + + 7 + int unsigned|0s + 1 + + + 8 + varchar(10)|0s + + + 9 + int|0s + 1 + + + 1 + int unsigned|0s + 1 + + + 2 + varchar(655)|0s + 1 + + + 3 + int unsigned|0s + 1 + + + 4 + varchar(22)|0s + + + 5 + int unsigned|0s + 1 + + + 6 + int unsigned|0s + 1 + + + 7 + varchar(10)|0s + + + 8 + int unsigned|0s + 1 + + + 9 + bigint unsigned|0s + 1 + + + 10 + bigint unsigned|0s + 1 + + + 11 + varchar(10)|0s + + + 12 + int unsigned|0s + 1 + + + 13 + varchar(1)|0s + + + 14 + varchar(10)|0s + + + 1 + varbinary(256)|0s + + + 2 + varchar(268)|0s + 1 + + + 3 + varchar(512)|0s + 1 + + + 4 + varbinary(256)|0s + + + 5 + varchar(7)|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(193)|0s + 1 + + + 3 + varchar(193)|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + bigint unsigned|0s + 1 + + + 6 + bigint unsigned|0s + 1 + + + 7 + bigint unsigned|0s + 1 + + + 8 + bigint unsigned|0s + 1 + + + 9 + int|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(64)|0s + + + 3 + int unsigned|0s + 1 + + + 4 + int unsigned|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(13)|0s + 1 + + + 3 + datetime|0s + 1 + + + 4 + varchar(105)|0s + + + 5 + datetime|0s + + + 6 + bigint unsigned|0s + 1 + + + 7 + bigint unsigned|0s + 1 + + + 8 + varchar(1024)|0s + + + 9 + varchar(64)|0s + + + 10 + bigint unsigned|0s + 1 + + + 11 + bigint unsigned|0s + 1 + + + 12 + bigint unsigned|0s + 1 + + + 13 + bigint unsigned|0s + 1 + + + 14 + bigint unsigned|0s + 1 + + + 15 + bigint unsigned|0s + 1 + + + 16 + bigint unsigned|0s + 1 + + + 17 + varchar(16)|0s + 1 + + + 18 + int|0s + 1 + + + 19 + int|0s + 1 + + + 20 + varchar(256)|0s + + + 21 + int|0s + 1 + + + 22 + bigint unsigned|0s + 1 + + + 23 + int|0s + 1 + + + 24 + int|0s + 1 + + + 25 + bigint unsigned|0s + + + 1 + bigint unsigned|0s + 1 + + + 2 + int unsigned|0s + 1 + + + 3 + int unsigned|0s + 1 + + + 1 + varchar(31)|0s + + + 2 + int|0s + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + varchar(64)|0s + + + 6 + varchar(64)|0s + + + 7 + varchar(64)|0s + + + 8 + int unsigned|0s + 1 + + + 9 + int unsigned|0s + + + 10 + varchar(64)|0s + + + 11 + varchar(64)|0s + + + 12 + varchar(64)|0s + + + 1 + varchar(65535)|0s + 1 + + + 2 + varchar(65535)|0s + 1 + + + 3 + int|0s + 1 + + + 4 + tinyint(1)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + bigint unsigned|0s + 1 + + + 5 + varchar(5)|0s + + + 6 + varchar(64)|0s + + + 7 + longtext|0s + + + 8 + bigint|0s + + + 9 + bigint|0s + + + 10 + int unsigned|0s + + + 11 + bigint|0s + + + 12 + int unsigned|0s + + + 13 + varchar(64)|0s + + + 14 + varchar(64)|0s + + + 15 + mediumtext|0s + 1 + + + 16 + enum('FUNCTION', 'PROCEDURE')|0e + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + + + 5 + varchar(64)|0s + + + 6 + int unsigned|0s + + + 7 + int unsigned|0s + + + 8 + varchar(13)|0s + + + 9 + varchar(13)|0s + + + 10 + varchar(2048)|0s + + + 11 + varchar(2048)|0s + + + 12 + text|0s + + + 13 + bigint unsigned|0s + + + 14 + bigint unsigned|0s + + + 15 + bigint unsigned|0s + + + 16 + bigint unsigned|0s + + + 17 + bigint unsigned|0s + + + 18 + bigint unsigned|0s + + + 19 + timestamp|0s + 1 + + + 20 + datetime|0s + + + 21 + datetime|0s + + + 22 + bigint|0s + + + 23 + text|0s + 1 + + + 24 + varchar(256)|0s + + + 25 + varchar(268)|0s + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(20)|0s + 1 + + + 3 + varchar(10)|0s + 1 + + + 4 + varchar(80)|0s + 1 + + + 5 + varchar(20)|0s + 1 + + + 6 + varchar(64)|0s + + + 7 + varchar(20)|0s + + + 8 + varchar(64)|0s + + + 9 + varchar(65535)|0s + + + 10 + varchar(80)|0s + + + 11 + varchar(64)|0s + 1 + + + 1 + bigint unsigned|0s + 1 + + + 2 + varchar(32)|0s + 1 + + + 3 + varchar(261)|0s + 1 + + + 4 + varchar(64)|0s + + + 5 + varchar(16)|0s + 1 + + + 6 + int|0s + 1 + + + 7 + varchar(64)|0s + + + 8 + varchar(65535)|0s + + + 1 + int|0s + 1 + + + 2 + int|0s + 1 + + + 3 + varchar(30)|0s + 1 + + + 4 + decimal(905)|0s + 1 + + + 5 + decimal(905)|0s + + + 6 + decimal(905)|0s + + + 7 + int|0s + + + 8 + int|0s + + + 9 + int|0s + + + 10 + int|0s + + + 11 + int|0s + + + 12 + int|0s + + + 13 + int|0s + + + 14 + int|0s + + + 15 + int|0s + + + 16 + varchar(30)|0s + + + 17 + varchar(20)|0s + + + 18 + int|0s + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + 1 + + + 5 + varchar(64)|0s + 1 + + + 6 + varchar(64)|0s + + + 7 + enum('NONE', 'PARTIAL', 'FULL')|0e + 1 + + + 8 + enum('NO ACTION', 'RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT')|0e + 1 + + + 9 + enum('NO ACTION', 'RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT')|0e + 1 + + + 10 + varchar(64)|0s + 1 + + + 11 + varchar(64)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + enum('SYSTEM', 'USER')|0e + 1 + + + 3 + tinyint(1)|0s + 1 + + + 4 + blob|0s + + + 5 + int|0s + 1 + + + 1 + varchar(97)|0s + + + 2 + varchar(256)|0s + + + 3 + char(32)|0s + 1 + + + 4 + char(255)|0s + 1 + + + 5 + varchar(3)|0s + 1 + + + 6 + char(64)|0s + 1 + + + 7 + char(64)|0s + 1 + + + 8 + char(64)|0s + 1 + + + 9 + set('Select', 'Insert', 'Update', 'References')|0e + 1 + + + 10 + varchar(3)|0s + 1 + + + 1 + varchar(97)|0s + + + 2 + varchar(256)|0s + + + 3 + char(32)|0s + 1 + + + 4 + char(255)|0s + 1 + + + 5 + varchar(3)|0s + 1 + + + 6 + char(64)|0s + 1 + + + 7 + char(64)|0s + 1 + + + 8 + varchar(3)|0s + 1 + + + 9 + char(64)|0s + 1 + + + 10 + char(64)|0s + 1 + + + 11 + set('Execute', 'Alter Routine', 'Grant')|0e + 1 + + + 12 + varchar(3)|0s + 1 + + + 1 + varchar(97)|0s + + + 2 + varchar(256)|0s + + + 3 + char(32)|0s + 1 + + + 4 + char(255)|0s + 1 + + + 5 + varchar(3)|0s + 1 + + + 6 + char(64)|0s + 1 + + + 7 + char(64)|0s + 1 + + + 8 + set('Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter', 'Create View', 'Show view', 'Trigger')|0e + 1 + + + 9 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + 1 + + + 5 + enum('FUNCTION', 'PROCEDURE')|0e + 1 + + + 6 + longtext|0s + + + 7 + bigint|0s + + + 8 + bigint|0s + + + 9 + int unsigned|0s + + + 10 + int unsigned|0s + + + 11 + int unsigned|0s + + + 12 + varchar(64)|0s + + + 13 + varchar(64)|0s + + + 14 + longtext|0s + + + 15 + varchar(3)|0s + 1 + + + 16 + longtext|0s + + + 17 + binary(0)|0s + + + 18 + varchar(64)|0s + 1 + + + 19 + varchar(3)|0s + 1 + + + 20 + varchar(3)|0s + 1 + + + 21 + enum('CONTAINS SQL', 'NO SQL', 'READS SQL DATA', 'MODIFIES SQL DATA')|0e + 1 + + + 22 + binary(0)|0s + + + 23 + enum('DEFAULT', 'INVOKER', 'DEFINER')|0e + 1 + + + 24 + timestamp|0s + 1 + + + 25 + timestamp|0s + 1 + + + 26 + set('REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'NOT_USED_9', 'NOT_USED_10', 'NOT_USED_11', 'NOT_USED_12', 'NOT_USED_13', 'NOT_USED_14', 'NOT_USED_15', 'NOT_USED_16', 'NOT_USED_17', 'NOT_USED_18', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ALLOW_INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NOT_USED_29', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH', 'TIME_TRUNCATE_FRACTIONAL')|0e + 1 + + + 27 + text|0s + 1 + + + 28 + varchar(288)|0s + 1 + + + 29 + varchar(64)|0s + 1 + + + 30 + varchar(64)|0s + 1 + + + 31 + varchar(64)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + 1 + + + 5 + binary(0)|0s + + + 6 + enum('NO', 'YES')|0e + 1 + + + 1 + varchar(292)|0s + 1 + + + 2 + varchar(512)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + 1 + + + 5 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + int|0s + 1 + + + 5 + varchar(64)|0s + + + 6 + varchar(64)|0s + + + 7 + int unsigned|0s + 1 + + + 8 + varchar(64)|0s + + + 9 + varchar(1)|0s + + + 10 + bigint|0s + + + 11 + bigint|0s + + + 12 + binary(0)|0s + + + 13 + varchar(3)|0s + 1 + + + 14 + varchar(11)|0s + 1 + + + 15 + varchar(8)|0s + 1 + + + 16 + varchar(2048)|0s + 1 + + + 17 + varchar(3)|0s + 1 + + + 18 + longtext|0s + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + varchar(80)|0s + + + 6 + int unsigned|0s + + + 7 + longtext|0s + + + 1 + varchar(80)|0s + 1 + + + 2 + int unsigned|0s + 1 + + + 3 + varchar(256)|0s + + + 4 + int unsigned|0s + + + 5 + varchar(4096)|0s + 1 + + + 6 + varchar(2048)|0s + + + 1 + varchar(255)|0s + + + 2 + varchar(7)|0s + + + 3 + double|0s + + + 4 + varchar(255)|0s + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + enum('BASE TABLE', 'VIEW', 'SYSTEM VIEW')|0e + 1 + + + 5 + varchar(64)|0s + + + 6 + int|0s + + + 7 + enum('Fixed', 'Dynamic', 'Compressed', 'Redundant', 'Compact', 'Paged')|0e + + + 8 + bigint unsigned|0s + + + 9 + bigint unsigned|0s + + + 10 + bigint unsigned|0s + + + 11 + bigint unsigned|0s + + + 12 + bigint unsigned|0s + + + 13 + bigint unsigned|0s + + + 14 + bigint unsigned|0s + + + 15 + timestamp|0s + 1 + + + 16 + datetime|0s + + + 17 + datetime|0s + + + 18 + varchar(64)|0s + + + 19 + bigint|0s + + + 20 + varchar(256)|0s + + + 21 + text|0s + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + bigint unsigned|0s + + + 6 + bigint unsigned|0s + + + 7 + bigint unsigned|0s + + + 8 + bigint unsigned|0s + + + 9 + varchar(2048)|0s + + + 1 + varchar(268)|0s + 1 + + + 2 + json|0s + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + json|0s + + + 5 + json|0s + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + varchar(64)|0s + + + 6 + varchar(11)|0s + 1 + + + 7 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + 1 + + + 2 + varchar(64)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + 1 + + + 5 + json|0s + + + 6 + json|0s + + + 1 + varchar(292)|0s + 1 + + + 2 + varchar(512)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(64)|0s + 1 + + + 5 + varchar(64)|0s + 1 + + + 6 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + 1 + + + 4 + enum('INSERT', 'UPDATE', 'DELETE')|0e + 1 + + + 5 + varchar(64)|0s + + + 6 + varchar(64)|0s + + + 7 + varchar(64)|0s + + + 8 + int unsigned|0s + 1 + + + 9 + binary(0)|0s + + + 10 + longtext|0s + 1 + + + 11 + varchar(3)|0s + 1 + + + 12 + enum('BEFORE', 'AFTER')|0e + 1 + + + 13 + binary(0)|0s + + + 14 + binary(0)|0s + + + 15 + varchar(3)|0s + 1 + + + 16 + varchar(3)|0s + 1 + + + 17 + timestamp(2)|0s + 1 + + + 18 + set('REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'NOT_USED_9', 'NOT_USED_10', 'NOT_USED_11', 'NOT_USED_12', 'NOT_USED_13', 'NOT_USED_14', 'NOT_USED_15', 'NOT_USED_16', 'NOT_USED_17', 'NOT_USED_18', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ALLOW_INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NOT_USED_29', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH', 'TIME_TRUNCATE_FRACTIONAL')|0e + 1 + + + 19 + varchar(288)|0s + 1 + + + 20 + varchar(64)|0s + 1 + + + 21 + varchar(64)|0s + 1 + + + 22 + varchar(64)|0s + 1 + + + 1 + char(32)|0s + 1 + + + 2 + char(255)|0s + 1 + + + 3 + longtext|0s + + + 1 + varchar(292)|0s + 1 + + + 2 + varchar(512)|0s + 1 + + + 3 + varchar(64)|0s + 1 + + + 4 + varchar(3)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + longtext|0s + + + 5 + enum('NONE', 'LOCAL', 'CASCADED')|0e + + + 6 + enum('NO', 'YES')|0e + + + 7 + varchar(288)|0s + + + 8 + varchar(7)|0s + + + 9 + varchar(64)|0s + 1 + + + 10 + varchar(64)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + varchar(64)|0s + + + 6 + varchar(64)|0s + 1 + + + 1 + varchar(64)|0s + + + 2 + varchar(64)|0s + + + 3 + varchar(64)|0s + + + 4 + varchar(64)|0s + + + 5 + varchar(64)|0s + + + 6 + varchar(64)|0s + + + 1 + bigint|0s + 1 + null + + + 2 + varchar(100)|0s + 1 + + + 3 + varchar(100)|0s + 1 + + + 4 + varchar(100)|0s + 1 + + + 5 + varchar(100)|0s + 1 + + + 6 + float|0s + 1 + + + 7 + int|0s + + + 1 + Id + 1 + + + 1 + bigint|0s + 1 + null + + + 2 + bigint|0s + 1 + + + 3 + bigint|0s + 1 + + + 4 + datetime|0s + + + 5 + datetime|0s + + + BookId + btree + + + UserId + btree + + + 1 + Id + 1 + + + BookId + book + Id + + + UserId + user + Id + + + 1 + bigint|0s + 1 + null + + + 2 + varchar(100)|0s + 1 + + + 3 + varchar(100)|0s + 1 + + + 4 + varchar(100)|0s + 1 + + + 5 + varchar(100)|0s + 1 + + + 6 + int|0s + 1 + 0 + + + 1 + Id + 1 + +
+
\ No newline at end of file diff --git a/library/.idea/encodings.xml b/library/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..63e900193296f8ed911a1b9f5b051cf908099431 --- /dev/null +++ b/library/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/library/.idea/inspectionProfiles/Project_Default.xml b/library/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000000000000000000000000000000000..87ddc21f33ea0f1891b92ba7b681f7754d7c79a4 --- /dev/null +++ b/library/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/library/.idea/jarRepositories.xml b/library/.idea/jarRepositories.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a2f139ce25c6f225e0cb5fb199704f51273de00 --- /dev/null +++ b/library/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml b/library/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..cae83174b4e3a9e8eaa15edc085bf17ca291108b --- /dev/null +++ b/library/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml b/library/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..ce491ade1ad51be62d34f6e3d4add62b4a4f856b --- /dev/null +++ b/library/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml b/library/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d20cadb125b983195e1de95ad35c3a94fe96fd4 --- /dev/null +++ b/library/.idea/libraries/Maven__com_alibaba_fastjson_1_2_78.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..1a12fe8f48bdb0d5f531a44e75918286f3636ed6 --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f0132fed63fd2771ab35ee0abe3a9fab8e780b9 --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac99f6250e200b9cc227c550464d0e8b895f7899 --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..03a71722be9087267ffac103a5ce8c67609705c4 --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..aaa84f25aef922837a1f9b565e3958ebdfb841b5 --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml b/library/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..e25b882c25e64bbdf2b40d9a50c012c02f77375b --- /dev/null +++ b/library/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml b/library/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..3056db882423561ca037dab9a1da07df1fe16254 --- /dev/null +++ b/library/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/library/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000000000000000000000000000000000000..b8581a6f5eef96c4979f258063e7c7c8d633f024 --- /dev/null +++ b/library/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/library/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..9314c366fccdc85267dd4c714c4da5d1882d3f02 --- /dev/null +++ b/library/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml b/library/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml new file mode 100644 index 0000000000000000000000000000000000000000..84eb1158f5c42c261b64b271b61dc73f16becf45 --- /dev/null +++ b/library/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml b/library/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..13afda2962f972e7f2e35e97e6a0dc52d8e90bbb --- /dev/null +++ b/library/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml b/library/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml new file mode 100644 index 0000000000000000000000000000000000000000..74c8a816401f4b8ca552af3da24f9c6bc3ba51fa --- /dev/null +++ b/library/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..2dd368e73aa712b28f34d1d66a3ca51ca5481904 --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_buffer_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..5e9d776fac2065244754a9fcc9095ae83e4ad397 --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_codec_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c341bd5a85ebceaaef80d1025273399563effd8 --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_common_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a993ed54653f3fba22bfb8150df6bcd450a0f7b --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_handler_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..584544aad7251c0c6cc0945d2af3fe203a854a54 --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_resolver_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml b/library/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml new file mode 100644 index 0000000000000000000000000000000000000000..b989eb7a079d45c069d1b5843c83adc240d54c6e --- /dev/null +++ b/library/.idea/libraries/Maven__io_netty_netty_transport_4_1_70_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml b/library/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml new file mode 100644 index 0000000000000000000000000000000000000000..d5eed903d22d0b46f0b59ffa8a1237d8762558ea --- /dev/null +++ b/library/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/library/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..be90656e69bb0356d5fbed85d2639aeac6c5f16a --- /dev/null +++ b/library/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/library/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000000000000000000000000000000000000..cba9dd244f222ce7ecbdcab4c7f9621a57fe1a67 --- /dev/null +++ b/library/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/library/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..04213f73868a39471664c431bdb5073055eb36d5 --- /dev/null +++ b/library/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml b/library/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c1fc592b4b34799de7d11d6015d0bd38bdcd32b --- /dev/null +++ b/library/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml b/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..c957e32807fa3c2eee4a4a940cc65a314d41dcce --- /dev/null +++ b/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml b/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..b67ac50fffe324a090e965990ae04edeb11e0682 --- /dev/null +++ b/library/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml b/library/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..8157bb41434dee18cfccd97687a3a9a847c9751c --- /dev/null +++ b/library/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml b/library/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..a17f648a6d6786a7085bef611594988964d8c0ca --- /dev/null +++ b/library/.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml b/library/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..28b86825096875ba9af3c9e3bc7a633596dc64a4 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml b/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..700b41b8e007c3ca74fffaa32d385995afdd6a7a --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml b/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae5c0b5dbc60404fb53687258318a0e0085dfac8 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..5272a362dce06c1179dd1bd9a845372890e0bcfa --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..4578d1bda76d5fe926295bbe58a653849db9dc96 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6997871a5c64b503e08b99869c0878b5832a16e --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa3fdcf9edc2ed49054e86df0748b66bb99d531b --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..77a90b8bcc585e70dda96a5d5f601a4813c132a3 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..dddd497e46a8a598bb50a0e6459c69ee9dd1c756 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..ece1eae30d8f2a44409b0a299c5399b917f87843 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7a65df538dccc59efc3e84c014bfed4487ee322 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..499eb00485dfcdd6dae723d9e864bd808f06a0f5 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..264c53fe5c55c6dc54bfc1303c578f2c673b23bd --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..0946e78d0dcd830670951a1238904e71592b92d9 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml b/library/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..7be49ba84d0bc0d0b07e3f6fc01479b0f931f1c9 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9c56a55356046af0c1a2e84c451d26967e4d834 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..af25262df1ce25feb669e513b79d38c567a83a09 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2a721a20cd972426fbb0561d22ccec45025928c --- /dev/null +++ b/library/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_55.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/library/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ac1c42c6bddbae8d8a2b945ac4b3d58ed4807e2 --- /dev/null +++ b/library/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml b/library/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..03e3cae97a5a87ed119a0dc470b9bba93f8b4f1d --- /dev/null +++ b/library/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/library/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b5496ff097a7fd9b72025c4acf36cda1416eda3 --- /dev/null +++ b/library/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..987e7d4e2ee35a406ef9142de7027edc2617018a --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..4910ca992b01066ca948ed251061a7555889f545 --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..85ab9ade17773b1a6f962816723f1cc0fb194a29 --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..8675273d91e2b3f4aac3913358060ce49ddcfb91 --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml b/library/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..341720888f321babd7e543f0c50949dfd9401826 --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml b/library/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..f19b408dff5fa904755fc05d36ff5c91ffa7c164 --- /dev/null +++ b/library/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml b/library/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf13209210a4cd883e073c3125b06c2ee734895a --- /dev/null +++ b/library/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml b/library/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..49e3f235367d37668bbcdeb9c6fff4818ba79110 --- /dev/null +++ b/library/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml b/library/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml new file mode 100644 index 0000000000000000000000000000000000000000..fab145936c967b8466be8a97cfcf31ea3ccfff2b --- /dev/null +++ b/library/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml b/library/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3593055009ef95f37be0a722680aca383d8aff8 --- /dev/null +++ b/library/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml b/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..879dc4197e4d1e04a8347a7492ac27aabc470184 --- /dev/null +++ b/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml b/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..8161289eaca3b7731b5c4527b0ece0e4311d5b35 --- /dev/null +++ b/library/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/library/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..6613def613e219a944b47f973641c7b0485b04bf --- /dev/null +++ b/library/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/library/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbc1b1635a2c69174f8bea7d6306f5175015adc0 --- /dev/null +++ b/library/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml b/library/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..67127c293eb56dbb26c1cc69af4b1a1cd58802ec --- /dev/null +++ b/library/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml b/library/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..c21f786356a94708dc6961abbab71a9e701691d6 --- /dev/null +++ b/library/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml b/library/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml new file mode 100644 index 0000000000000000000000000000000000000000..72b596efe4e37b97153d293b7e6354e93d7b07f6 --- /dev/null +++ b/library/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml b/library/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..f17253bf81c48360905fb478f634536f0202bf5f --- /dev/null +++ b/library/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/library/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..c4c54d6d5452b5e2f25085adb2d2b98c38ae4731 --- /dev/null +++ b/library/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml b/library/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml new file mode 100644 index 0000000000000000000000000000000000000000..a758eac2a8892d6ba631117be7843f1a0f50e00f --- /dev/null +++ b/library/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml b/library/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml new file mode 100644 index 0000000000000000000000000000000000000000..e5a84fb0f244ebd100405953530d660b77c6030b --- /dev/null +++ b/library/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..02efba5d23e6fef7976e3067bf066548d5722e30 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..549914c908c4ec5eabf57a7c585cb2620cf1591b --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..5f4056b005e38ace6ac292645f2ddfac06d86c85 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..a4a264f3bbb64ef70b0970923813b34b9f9aa7a6 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_6_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..165a90762776a5e8bd9ee967e6dbf188ed8221c6 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..cdc31b4f3ae6bdb9d8aa2eded04efa87c7c4f152 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..1686576d189f24fccf7489038f3e50dd4b740e6f --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..121a72dd99cdc4964713d493731635644f608041 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a378ca5cae1abfa3f329b5d9b4a4541ef95bf2a --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..dc383639b6d8819934bc38d47452da34c4929dbd --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..737fa4fa1fa180faa193aac2c5617889eabe4420 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..7021afaab71363018016f2bf623e22d40da18af8 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml b/library/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..d82d93d03d559f9e2952d8ec004e0ef034e923b7 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml b/library/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..f79fe6bc3891db6c8ecc3c260285278eb3892647 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml b/library/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..efe1b25ca34ce4f2e9090cbaed7ada51183ff5a8 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1d3f7ec886a85c9dd4a7cc4bbfa05d71490749b --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_aop_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..95086d7dfca140333460dd05106831acd672fa15 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_beans_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..049f2733fc5d53f45a7b386c61533dde63f9ffe0 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_context_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c7b5e47c573a7d75cb34b4bbc4d4e4d9df4099d --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..86128a84edd0427952ffbd8abe7073f23ccc1d57 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_core_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..99ae0af19f331783049cb0e64d5b31131e65f240 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_expression_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..dea8de9249698d1ef8d5fcf229730298bbfb777e --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..1434cb9f13213c73ad2c39041b6e4c4a61803475 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..0ba448141bced39eb975f23cade79d083c5739b5 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b7ef9931ec83eb8e78a5d69edaf29ed1c2c968f --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_test_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..62efcd0336cdc81809a576a39a6dc82e3d710a4b --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_tx_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..b76451908e1f6ef75b95d811049cd3721e55b70b --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_web_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml b/library/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml new file mode 100644 index 0000000000000000000000000000000000000000..49b862758be9c32b9aa970743d5000524ca77df8 --- /dev/null +++ b/library/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml b/library/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..c50fc54d02dce9a9afb631b18412205101bcb790 --- /dev/null +++ b/library/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml b/library/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8715299801077ec827cbb750a86478adde4ab7a --- /dev/null +++ b/library/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/misc.xml b/library/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..75447e4d672ce81fbb915f90b6106e47dd48d694 --- /dev/null +++ b/library/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/modules.xml b/library/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ec3198fc09ed058a1a6de4b7d23c078ff1231a0 --- /dev/null +++ b/library/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/library/.idea/uiDesigner.xml b/library/.idea/uiDesigner.xml new file mode 100644 index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8 --- /dev/null +++ b/library/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/.idea/vcs.xml b/library/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/library/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/library/.mvn/wrapper/MavenWrapperDownloader.java b/library/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000000000000000000000000000000000000..a45eb6ba269cd38f8965cef786729790945d9537 --- /dev/null +++ b/library/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/library/.mvn/wrapper/maven-wrapper.properties b/library/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9f1ef87bb243173e8c66f042ee49a5701bfe1a8 --- /dev/null +++ b/library/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/library/HELP.md b/library/HELP.md new file mode 100644 index 0000000000000000000000000000000000000000..7cdf58f4dbfc2bfc3576ad7f11708ac39c9616d3 --- /dev/null +++ b/library/HELP.md @@ -0,0 +1,25 @@ +# Getting Started + +### Reference Documentation + +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.6.1/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.6.1/maven-plugin/reference/html/#build-image) +* [Spring Web](https://docs.spring.io/spring-boot/docs/2.6.1/reference/htmlsingle/#boot-features-developing-web-applications) +* [MyBatis Framework](https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/) +* [JDBC API](https://docs.spring.io/spring-boot/docs/2.6.1/reference/htmlsingle/#boot-features-sql) + +### Guides + +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/) +* [MyBatis Quick Start](https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start) +* [Accessing Relational Data using JDBC with Spring](https://spring.io/guides/gs/relational-data-access/) +* [Managing Transactions](https://spring.io/guides/gs/managing-transactions/) +* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) + diff --git a/library/LICENSE b/library/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/library/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/library/README.md b/library/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e8d13b2d0fb494eb45a1bfb430d99e2a4c83e280 --- /dev/null +++ b/library/README.md @@ -0,0 +1,2 @@ +# 图书管理系统后端 +springboot+mybatis+shiro+redis的图书管理系统后端部分 diff --git a/library/demo.iml b/library/demo.iml new file mode 100644 index 0000000000000000000000000000000000000000..c978e43b3cb537dcd653a5617dfd88f47a9db12a --- /dev/null +++ b/library/demo.iml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/library.iml b/library/library.iml new file mode 100644 index 0000000000000000000000000000000000000000..859bd4224ebdbe9749da60d4dd0d673d159465f1 --- /dev/null +++ b/library/library.iml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/mvnw b/library/mvnw new file mode 100644 index 0000000000000000000000000000000000000000..a16b5431b4c3cab50323a3f558003fd0abd87dad --- /dev/null +++ b/library/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/library/mvnw.cmd b/library/mvnw.cmd new file mode 100644 index 0000000000000000000000000000000000000000..c8d43372c986d97911cdc21bd87e0cbe3d83bdda --- /dev/null +++ b/library/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/library/pom.xml b/library/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..433f217fe65e8957f4149621538f20032d01664a --- /dev/null +++ b/library/pom.xml @@ -0,0 +1,103 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.6.1 + + + library + demo + 0.0.1-SNAPSHOT + demo + Demo project for Spring Boot + + 1.8 + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.0 + + + + mysql + mysql-connector-java + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.alibaba + fastjson + 1.2.78 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.0 + + + + + org.apache.shiro + shiro-spring-boot-starter + 1.8.0 + + + + + org.apache.commons + commons-lang3 + 3.12.0 + + + + + org.springframework.boot + spring-boot-starter-data-redis + 2.6.2 + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/library/src/main/java/library/demo/DemoApplication.java b/library/src/main/java/library/demo/DemoApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..1b72aead6933eb816c33c9ceaa3b077dfb6c9b18 --- /dev/null +++ b/library/src/main/java/library/demo/DemoApplication.java @@ -0,0 +1,13 @@ +package library.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/library/src/main/java/library/demo/auth/AuthFilter.java b/library/src/main/java/library/demo/auth/AuthFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..638dc68769bcd1f498e890b00b5475bb3c43eb0f --- /dev/null +++ b/library/src/main/java/library/demo/auth/AuthFilter.java @@ -0,0 +1,109 @@ +package library.demo.auth; + +import com.alibaba.fastjson.JSONObject; +import library.demo.utils.HttpContextUtil; +import library.demo.utils.TokenUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.web.filter.authc.AuthenticatingFilter; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class AuthFilter extends AuthenticatingFilter { + + // 定义jackson对象 + private static final JSONObject MAPPER = new JSONObject(); + + /** + * 生成自定义token + * + * @param request + * @param response + * @return + * @throws Exception + */ + @Override + protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) throws Exception { + //获取请求token + String token = TokenUtil.getRequestToken((HttpServletRequest) request); + + return new AuthToken(token); + } + + /** + * 步骤1.所有请求全部拒绝访问 + * + * @param request + * @param response + * @param mappedValue + * @return + */ + @Override + protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) { + if (((HttpServletRequest) request).getMethod().equals(RequestMethod.OPTIONS.name())) { + return true; + } + String url = ((HttpServletRequest) request).getRequestURL().toString(); + String method = "/api/user"; + //放行用户注册方法 + if (url.startsWith(method, url.length()-method.length()) && + ((HttpServletRequest) request).getMethod().equals(RequestMethod.POST.name())) { + return true; + } + return false; + } + + /** + * 步骤2,拒绝访问的请求,会调用onAccessDenied方法,onAccessDenied方法先获取 token,再调用executeLogin方法 + * + * @param request + * @param response + * @return + * @throws Exception + */ + @Override + protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { + //获取请求token,如果token不存在,直接返回 + String token = TokenUtil.getRequestToken((HttpServletRequest) request); + if (StringUtils.isBlank(token)) { + HttpServletResponse httpResponse = (HttpServletResponse) response; + httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); + httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtil.getOrigin()); + httpResponse.setCharacterEncoding("UTF-8"); + MAPPER.put("code", 1); + MAPPER.put("msg", "请先登录"); + String json = MAPPER.toJSONString(); + httpResponse.getWriter().print(json); + return false; + } + return executeLogin(request, response); + } + + /** + * token失效时候调用 + */ + @Override + protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) { + HttpServletResponse httpResponse = (HttpServletResponse) response; + httpResponse.setContentType("application/json;charset=utf-8"); + httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); + httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtil.getOrigin()); + httpResponse.setCharacterEncoding("UTF-8"); + try { + //处理登录失败的异常 + Throwable throwable = e.getCause() == null ? e : e.getCause(); + MAPPER.put("code", 1); + MAPPER.put("msg", "登录凭证已失效,请重新登录"); + String json = MAPPER.toJSONString(); + httpResponse.getWriter().print(json); + } catch (IOException e1) { + } + return false; + } +} diff --git a/library/src/main/java/library/demo/auth/AuthRealm.java b/library/src/main/java/library/demo/auth/AuthRealm.java new file mode 100644 index 0000000000000000000000000000000000000000..7f0bccb508ba6c52825a79eae7d1378b7d44cd37 --- /dev/null +++ b/library/src/main/java/library/demo/auth/AuthRealm.java @@ -0,0 +1,62 @@ +package library.demo.auth; + +import library.demo.pojo.User; +import library.demo.serviceImpl.ShiroServiceImpl; +import library.demo.serviceImpl.UserServiceImpl; +import org.apache.shiro.authc.*; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + + +@Component +public class AuthRealm extends AuthorizingRealm { + + @Autowired + ShiroServiceImpl shiroService; + @Autowired + UserServiceImpl userService; + @Autowired + @Qualifier("redisTemplate") + RedisTemplate redisTemplate; + + //授权 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { + //1. 从 PrincipalCollection 中来获取登录用户的信息 + User user = (User) principals.getPrimaryPrincipal(); + //2.添加角色和权限 + SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo(); + simpleAuthorizationInfo.addRole(user.getRole()+""); + return simpleAuthorizationInfo; + } + + //认证 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { + //获取token,既前端传入的token + String accessToken = (String) token.getPrincipal(); + //1. 根据accessToken,查询用户信息 + String userId; + User user; + try { + userId = (String) redisTemplate.opsForValue().get(accessToken); + //3. 调用数据库的方法, 从数据库中查询 username 对应的用户记录 + user = userService.queryUserById(Long.valueOf(userId)); + //4. 若用户不存在, 则可以抛出 UnknownAccountException 异常 + if (user == null) { + throw new UnknownAccountException("用户不存在!"); + } + } catch (Exception e) { + throw new IncorrectCredentialsException("token失效,请重新登录"); + } + //5. 根据用户的情况, 来构建 AuthenticationInfo 对象并返回. 通常使用的实现类为: SimpleAuthenticationInfo + SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, accessToken, this.getName()); + return info; + } +} diff --git a/library/src/main/java/library/demo/auth/AuthToken.java b/library/src/main/java/library/demo/auth/AuthToken.java new file mode 100644 index 0000000000000000000000000000000000000000..45672312f215780fa5cf8f2b4b07a7815c40f383 --- /dev/null +++ b/library/src/main/java/library/demo/auth/AuthToken.java @@ -0,0 +1,22 @@ +package library.demo.auth; + +import org.apache.shiro.authc.UsernamePasswordToken; + +public class AuthToken extends UsernamePasswordToken { + + private String token; + + public AuthToken(String token) { + this.token = token; + } + + @Override + public Object getPrincipal() { + return token; + } + + @Override + public Object getCredentials() { + return token; + } +} diff --git a/library/src/main/java/library/demo/auth/TokenGenerator.java b/library/src/main/java/library/demo/auth/TokenGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..05a1a2d548be8566a9143fec81901dd6c7c49028 --- /dev/null +++ b/library/src/main/java/library/demo/auth/TokenGenerator.java @@ -0,0 +1,41 @@ +package library.demo.auth; + +import java.security.MessageDigest; +import java.util.UUID; + +public class TokenGenerator { + public static String generateValue() { + return generateValue(UUID.randomUUID().toString()); + } + + private static final char[] hexCode = "0123456789abcdefgh".toCharArray(); + + public static String toHexString(byte[] data) { + if (data == null) { + return null; + } + StringBuilder r = new StringBuilder(data.length * 2); + for (byte b : data) { + r.append(hexCode[(b >> 4) & 0xF]); + r.append(hexCode[(b & 0xF)]); + } + return r.toString(); + } + + /** + * 生成Token + * @param param + * @return + */ + public static String generateValue(String param) { + try { + MessageDigest algorithm = MessageDigest.getInstance("MD5"); + algorithm.reset(); + algorithm.update(param.getBytes()); + byte[] messageDigest = algorithm.digest(); + return toHexString(messageDigest); + } catch (Exception e) { + throw new RuntimeException("生成Token失败"); + } + } +} diff --git a/library/src/main/java/library/demo/config/RedisConfig.java b/library/src/main/java/library/demo/config/RedisConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..92cd3e51bb6f6eee299fc083a47169d8c2df39e6 --- /dev/null +++ b/library/src/main/java/library/demo/config/RedisConfig.java @@ -0,0 +1,62 @@ +package library.demo.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + + +@Configuration +public class RedisConfig { + + /** + * 配置RedisTemplate + * + * @param factory + * @return + */ + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(factory); + //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + //反序列化时候遇到不匹配的属性并不抛出异常 + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + //序列化时候遇到空对象不抛出异常 + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + //反序列化的时候如果是无效子类型,不抛出异常 + objectMapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false); + //不使用默认的dateTime进行序列化, + objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false); + //使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类 + objectMapper.registerModule(new JavaTimeModule()); + //启用反序列化所需的类型信息,在属性中添加@class + objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + jackson2JsonRedisSerializer.setObjectMapper(objectMapper); + RedisSerializer stringSerializer = new StringRedisSerializer(); + //key序列化 + redisTemplate.setKeySerializer(stringSerializer); + //value序列化 + redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); + //Hash key序列化 + redisTemplate.setHashKeySerializer(stringSerializer); + // Hash value序列化 + redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } +} diff --git a/library/src/main/java/library/demo/config/ShiroConfig.java b/library/src/main/java/library/demo/config/ShiroConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..804461a1d9b1461d751d149dd41b342165c59968 --- /dev/null +++ b/library/src/main/java/library/demo/config/ShiroConfig.java @@ -0,0 +1,54 @@ +package library.demo.config; + +import library.demo.auth.AuthFilter; +import library.demo.auth.AuthRealm; +import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.servlet.Filter; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +@Configuration +public class ShiroConfig { + + //ShiroFilterFactoryBean + @Bean("shiroFilterFactoryBean") + public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("getDefaultWebSecurityManager")DefaultWebSecurityManager defaultWebSecurityManager){ + ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean(); + //设置安全管理器 + bean.setSecurityManager(defaultWebSecurityManager); + + //添加shiro内置过滤器 + /* + anon:无需认证就可以访问 + auth:必须认证才能访问 + user:必须拥有 记住我 功能才能用 + perms:拥有对某个资源的权限才能访问 + role:拥有某个角色权限才能访问 + */ + Map filters = new HashMap<>(); + filters.put("auth",new AuthFilter()); + bean.setFilters(filters); + Map filterMap = new LinkedHashMap<>(); + filterMap.put("/api/login","anon"); + filterMap.put("/api/**","auth"); + + bean.setFilterChainDefinitionMap(filterMap); + return bean; + } + + //DefaultWebSecurityManager + @Bean + public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("authRealm")AuthRealm authRealm){ + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + //关联UserRealm + securityManager.setRealm(authRealm); + securityManager.setRememberMeManager(null); + return securityManager; + } +} diff --git a/library/src/main/java/library/demo/controller/BookController.java b/library/src/main/java/library/demo/controller/BookController.java new file mode 100644 index 0000000000000000000000000000000000000000..b3fbaa1439d22c6e97dcac48f9e4867f5b804c35 --- /dev/null +++ b/library/src/main/java/library/demo/controller/BookController.java @@ -0,0 +1,457 @@ +package library.demo.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import library.demo.pojo.Book; +import library.demo.pojo.Record; +import library.demo.pojo.User; +import library.demo.serviceImpl.BookServiceImpl; +import library.demo.serviceImpl.UserServiceImpl; +import library.demo.utils.IdUtil; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +public class BookController { + + @Autowired + BookServiceImpl bookService; + @Autowired + UserServiceImpl userService; + + DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + //创建书目 + @RequiresRoles({"1"}) + @PostMapping("/api/book") + public JSONObject addBook(@RequestBody String str) { + JSONObject jsonReq = JSONObject.parseObject(str); + Book book = jsonReq.toJavaObject(Book.class); + book.setId(IdUtil.getRandomId()); + JSONObject jsonRes = new JSONObject(); + if (bookService.addBook(book) != 0) { + jsonRes.put("code", 0); + jsonRes.put("msg", "ok"); + JSONObject data = new JSONObject(); + data.put("book_id", book.getId()); + jsonRes.put("data", data); + } + return jsonRes; + } + + //删除书目 + @RequiresRoles("1") + @DeleteMapping("/api/book") + public JSONObject deleteBook(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String book_id = jsonReq.getString("book_id"); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + Book book = bookService.queryBookById(Long.parseLong(book_id)); + + if (book == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + data.put("name","null"); + data.put("place","null"); + data.put("introduction","null"); + data.put("author","null"); + data.put("price","null"); + jsonRes.put("data",data); + } else { + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("name",book.getName()); + data.put("place",book.getPlace()); + data.put("introduction",book.getIntroduction()); + data.put("author",book.getAuthor()); + data.put("price",book.getPrice()); + jsonRes.put("data",data); + bookService.deleteBook(book.getId()); + } + + return jsonRes; + } + + //更新书目 + @RequiresRoles("1") + @PutMapping("/api/book") + public JSONObject updateBookInfo(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + Book book = jsonReq.toJavaObject(Book.class); + String book_id = jsonReq.getString("book_id"); + book.setId(Long.parseLong(book_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + Book bookById = bookService.queryBookById(Long.parseLong(book_id)); + + if (bookById == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + data.put("name","null"); + data.put("place","null"); + data.put("introduction","null"); + data.put("author","null"); + data.put("price","null"); + jsonRes.put("data",data); + } else { + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("name",book.getName()); + data.put("place",book.getPlace()); + data.put("introduction",book.getIntroduction()); + data.put("author",book.getAuthor()); + data.put("price",book.getPrice()); + jsonRes.put("data",data); + bookService.updateBook(book); + } + + return jsonRes; + } + + //获得书目信息 + @GetMapping("/api/book") + public JSONObject getBookInfo(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String book_id = jsonReq.getString("book_id"); + + Book book = bookService.queryBookById(Long.parseLong(book_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (book == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + data.put("name","null"); + data.put("place","null"); + data.put("introduction","null"); + data.put("author","null"); + data.put("price","null"); + jsonRes.put("data",data); + } else { + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("name",book.getName()); + data.put("place",book.getPlace()); + data.put("introduction",book.getIntroduction()); + data.put("author",book.getAuthor()); + data.put("price",book.getPrice()); + jsonRes.put("data",data); + } + + return jsonRes; + } + + //查询书目列表 + @GetMapping("/api/books") + public JSONObject getBookList(){ + List books = bookService.queryAllBooks(); + JSONArray list = new JSONArray(); + JSONObject jsonRes = new JSONObject(); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + + Map map = new HashMap<>(); + + for (Book book : books) { + map.put("book_id",book.getId()); + map.put("name",book.getName()); + list.add(map); + map = new HashMap<>(); + } + jsonRes.put("data",list); + + return jsonRes; + } + + //借书 + @PostMapping("/api/book/borrow") + public JSONObject borrowBook(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String book_id = jsonReq.getString("book_id"); + String user_id = jsonReq.getString("user_id"); + + Record record = new Record(); + record.setId(IdUtil.getRandomId()); + record.setBookId(Long.parseLong(book_id)); + record.setUserId(Long.parseLong(user_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + Book book = bookService.queryBookById(Long.parseLong(book_id)); + User user = userService.queryUserById(Long.parseLong(user_id)); + + if (book == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + data.put("record_id","null"); + data.put("borrow_date","null"); + jsonRes.put("data",data); + } else if (user == null){ + jsonRes.put("code",1); + jsonRes.put("msg","用户不存在"); + data.put("record_id","null"); + data.put("borrow_date","null"); + jsonRes.put("data",data); + } else if (book.getStatus() == 1){ + jsonRes.put("code",1); + jsonRes.put("msg","书被借出"); + data.put("record_id","null"); + data.put("borrow_date","null"); + jsonRes.put("data",data); + } else { + record.setBorrowDate(LocalDateTime.now()); + bookService.updateStatus(Long.parseLong(book_id),1); + bookService.borrowBook(record); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("record_id",record.getId()); + data.put("borrow_date",dft.format(record.getBorrowDate())); + jsonRes.put("data",data); + } + + return jsonRes; + } + + //还书 + @PostMapping("/api/book/return") + public JSONObject returnBook(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String record_id = jsonReq.getString("record_id"); + String user_id = jsonReq.getString("user_id"); + + User user = userService.queryUserById(Long.parseLong(user_id)); + Record record = bookService.queryRecordById(Long.parseLong(record_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (user == null){ + jsonRes.put("code",1); + jsonRes.put("msg","用户不存在"); + data.put("borrow_date","null"); + data.put("return_date","null"); + jsonRes.put("data",data); + } else if (record == null){ + jsonRes.put("code",1); + jsonRes.put("msg","借书记录不存在"); + data.put("borrow_date","null"); + data.put("return_date","null"); + jsonRes.put("data",data); + } else { + LocalDateTime now = LocalDateTime.now(); + bookService.updateReturnDate(Long.parseLong(record_id),now); + bookService.updateStatus(record.getBookId(),0); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("borrow_date",dft.format(record.getBorrowDate())); + data.put("return_date",dft.format(now)); + jsonRes.put("data",data); + } + + return jsonRes; + } + + //查询指定书目的借还状态 + @GetMapping("/api/book/status") + public JSONObject getBookStatus(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String book_id = jsonReq.getString("book_id"); + + Book book = bookService.queryBookById(Long.parseLong(book_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (book == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + data.put("user_id","null"); + data.put("borrow_date","null"); + data.put("return_date","null"); + } else { + List records = bookService.queryBookAllRecords(Long.parseLong(book_id)); + if (records.size() == 0){ + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("user_id","null"); + data.put("borrow_date","null"); + data.put("return_date","null"); + jsonRes.put("data",data); + return jsonRes; + } + Record record = records.get(records.size() - 1); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("user_id",record.getUserId()); + data.put("borrow_date",dft.format(record.getBorrowDate())); + if (record.getReturnDate() == null){ + data.put("return_date","null"); + } else { + data.put("return_date",dft.format(record.getReturnDate())); + } + } + jsonRes.put("data",data); + return jsonRes; + } + + //查询指定书目的所有借还记录 + @RequiresRoles("1") + @GetMapping("/api/book/records") + public JSONObject getBookRecords(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String book_id = jsonReq.getString("book_id"); + + Book book = bookService.queryBookById(Long.parseLong(book_id)); + + JSONObject jsonRes = new JSONObject(); + JSONArray list = new JSONArray(); + Map map = new HashMap<>(); + + if (book == null){ + jsonRes.put("code",1); + jsonRes.put("msg","书目不存在"); + jsonRes.put("data",list); + } else { + List records = bookService.queryBookAllRecords(Long.parseLong(book_id)); + for (Record record : records) { + map.put("record_id",record.getId()); + map.put("user_id",record.getUserId()); + map.put("username",userService.queryUserById(record.getUserId()).getUsername()); + map.put("borrow_date",dft.format(record.getBorrowDate())); + if (record.getReturnDate() == null){ + map.put("return_date","null"); + } else { + map.put("return_date",dft.format(record.getReturnDate())); + } + list.add(map); + map = new HashMap<>(); + } + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + jsonRes.put("data",list); + } + + return jsonRes; + } + + //查询指定用户的所有借书记录 + @RequiresRoles("1") + @GetMapping("/api/user/books") + public JSONObject getUserRecords(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String user_id = jsonReq.getString("user_id"); + + User user = userService.queryUserById(Long.parseLong(user_id)); + + JSONObject jsonRes = new JSONObject(); + JSONArray list = new JSONArray(); + Map map = new HashMap<>(); + + if (user == null){ + jsonRes.put("code",1); + jsonRes.put("msg","用户不存在"); + jsonRes.put("data",list); + } else { + List records = bookService.queryUserRecords(Long.parseLong(user_id)); + for (Record record : records) { + map.put("record_id",record.getId()); + map.put("book_id",record.getBookId()); + map.put("name",bookService.queryBookById(record.getBookId()).getName()); + map.put("borrow_date",dft.format(record.getBorrowDate())); + if (record.getReturnDate() == null){ + map.put("return_date","null"); + } else { + map.put("return_date",dft.format(record.getReturnDate())); + } + list.add(map); + map = new HashMap<>(); + } + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + jsonRes.put("data",list); + } + + return jsonRes; + } + + //通过记录查询书目借还状态 + @RequiresRoles("1") + @GetMapping("/api/user/record") + public JSONObject getStatusByRid(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String record_id = jsonReq.getString("record_id"); + + Record record = bookService.queryRecordById(Long.parseLong(record_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (record == null){ + jsonRes.put("code",1); + jsonRes.put("msg","记录不存在"); + data.put("book_id","null"); + data.put("user_id","null"); + data.put("borrow_date","null"); + data.put("return_date","null"); + } else { + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("book_id",record.getBookId()); + data.put("user_id",record.getUserId()); + data.put("borrow_date",dft.format(record.getBorrowDate())); + if (record.getReturnDate() == null){ + data.put("return_date","null"); + } else { + data.put("return_date",dft.format(record.getReturnDate())); + } + } + jsonRes.put("data",data); + + return jsonRes; + } + + //查询所有借还记录 + @RequiresRoles("1") + @GetMapping("/api/records") + public JSONObject getAllRecords() { + JSONObject jsonRes = new JSONObject(); + JSONArray list = new JSONArray(); + Map map = new HashMap<>(); + List records = bookService.queryAllRecords(); + + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + + for (Record record : records) { + map.put("record_id",record.getId()); + map.put("book_id",record.getBookId()); + map.put("usr_id",record.getUserId()); + map.put("borrow_date",dft.format(record.getBorrowDate())); + if (record.getReturnDate() == null){ + map.put("return_date","null"); + } else { + map.put("return_date",dft.format(record.getReturnDate())); + } + list.add(map); + map = new HashMap<>(); + } + jsonRes.put("data", list); + + return jsonRes; + } + +} diff --git a/library/src/main/java/library/demo/controller/UserController.java b/library/src/main/java/library/demo/controller/UserController.java new file mode 100644 index 0000000000000000000000000000000000000000..e153a3f47d62535a345c2a18e585099d7cbc7a23 --- /dev/null +++ b/library/src/main/java/library/demo/controller/UserController.java @@ -0,0 +1,198 @@ +package library.demo.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import library.demo.pojo.User; +import library.demo.serviceImpl.ShiroServiceImpl; +import library.demo.serviceImpl.UserServiceImpl; +import library.demo.utils.Md5SaltUtil; +import library.demo.utils.IdUtil; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +public class UserController { + + @Autowired + UserServiceImpl userService; + @Autowired + ShiroServiceImpl shiroService; + + //用户注册 + @PostMapping("/api/user") + public JSONObject addUser(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String username = jsonReq.getString("username"); + String password = jsonReq.getString("password"); + String email = jsonReq.getString("email"); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (userService.queryUserByName(username) != null){ + jsonRes.put("code",1); + jsonRes.put("msg","用户名已注册"); + data.put("user_id","null"); + jsonRes.put("data",data); + } else if (userService.queryUserByEmail(email) != null){ + jsonRes.put("code",1); + jsonRes.put("msg","邮箱已注册"); + data.put("user_id","null"); + jsonRes.put("data",data); + } else { + User user = jsonReq.toJavaObject(User.class); + String lastPassword = Md5SaltUtil.encrypt(username, password); + user.setId(IdUtil.getRandomId()); + user.setPassword(lastPassword); + userService.addUser(user); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("user_id",user.getId()); + jsonRes.put("data",data); + } + return jsonRes; + } + + //用户登录 + @PostMapping("/api/login") + public JSONObject login(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String username = jsonReq.getString("username"); + String password = jsonReq.getString("password"); + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + User user = userService.queryUserByName(username); + + if (user == null){ + jsonRes.put("code",1); + jsonRes.put("msg","用户名不存在"); + data.put("user_id","null"); + } else if(!user.getPassword().equals(Md5SaltUtil.encrypt(username,password))){ + jsonRes.put("code",1); + jsonRes.put("msg","密码错误"); + data.put("user_id","null"); + } else { + String token = shiroService.createToken(user.getId()); + jsonRes.put("code","0"); + jsonRes.put("msg","登录成功"); + jsonRes.put("access_token",token); + data.put("user_id",user.getId()); + } + jsonRes.put("data",data); + return jsonRes; + } + + //用户登出 + @PostMapping("/api/logout") + public JSONObject logout(@RequestHeader("access_token") String token){ + JSONObject jsonRes = new JSONObject(); + shiroService.logout(token); + jsonRes.put("code",0); + jsonRes.put("msg","退出登录成功!"); + return jsonRes; + } + + //获取用户信息 + @GetMapping("/api/user") + public JSONObject getUser(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String user_id = jsonReq.getString("user_id"); + User user = userService.queryUserById(Long.parseLong(user_id)); + + JSONObject jsonRes = new JSONObject(); + JSONObject data = new JSONObject(); + + if (user == null){ + jsonRes.put("code",1); + jsonRes.put("msg","该用户不存在"); + data.put("username","null"); + data.put("nickname","null"); + data.put("email","null"); + } else { + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + data.put("username",user.getUsername()); + data.put("nickname",user.getNickname()); + data.put("email",user.getEmail()); + } + jsonRes.put("data",data); + return jsonRes; + } + + //更改用户信息 + @PutMapping("/api/user") + public JSONObject updateUserInfo(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String email = jsonReq.getString("email"); + String nickname = jsonReq.getString("nickname"); + String user_id = jsonReq.getString("user_id"); + + JSONObject jsonRes = new JSONObject(); + + User user = userService.queryUserByEmail(email); + + if (user != null){ + jsonRes.put("code",1); + jsonRes.put("msg","邮箱已被占用"); + } else { + userService.updateInfo(email,nickname,Long.parseLong(user_id)); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + } + return jsonRes; + } + + //修改用户密码 + @PostMapping("/api/user/password") + public JSONObject updatePassword(@RequestBody String str){ + JSONObject jsonReq = JSONObject.parseObject(str); + String user_id = jsonReq.getString("user_id"); + String password = jsonReq.getString("password"); + String old_password = jsonReq.getString("old_password"); + + JSONObject jsonRes = new JSONObject(); + + User user = userService.queryUserById(Long.parseLong(user_id)); + + if (!user.getPassword().equals(Md5SaltUtil.encrypt(user.getUsername(),old_password))){ + jsonRes.put("code",1); + jsonRes.put("msg","原始密码错误"); + } else { + userService.updatePassword(Long.parseLong(user_id),Md5SaltUtil.encrypt(user.getUsername(),password)); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + } + + return jsonRes; + } + + //获取用户列表 + @RequiresRoles("1") + @GetMapping("/api/users") + public JSONObject getUserList(){ + List users = userService.queryAllUsers(); + + JSONObject jsonRes = new JSONObject(); + JSONArray list = new JSONArray(); + jsonRes.put("code",0); + jsonRes.put("msg","ok"); + + Map map = new HashMap<>(); + + for (User user : users) { + map.put("user_id",user.getId()); + map.put("username",user.getUsername()); + list.add(map); + map = new HashMap<>(); + } + jsonRes.put("data",list); + + return jsonRes; + } +} diff --git a/library/src/main/java/library/demo/dao/BookMapper.java b/library/src/main/java/library/demo/dao/BookMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..33d365aa24175e0aeab38498afebdfe23952ef3b --- /dev/null +++ b/library/src/main/java/library/demo/dao/BookMapper.java @@ -0,0 +1,54 @@ +package library.demo.dao; + +import library.demo.pojo.Book; +import library.demo.pojo.Record; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.time.LocalDateTime; +import java.util.List; + +@Mapper +@Repository +public interface BookMapper { + + //创建书目 + int addBook(Book book); + + //删除书目 + int deleteBook(@Param("id") long id); + + //更新书目 + int updateBook(Book book); + + //获取书目列表 + List queryAllBooks(); + + //获取书目信息 + Book queryBookById(@Param("id") long book_id); + + //查询指定书目的借还状态 + Record queryRecordByBookId(@Param("id") long book_id); + + //查询指定书目的所有借还记录 + List queryBookAllRecords(@Param("id") long book_id); + + //查询指定用户的所有借书记录 + List queryUserRecords(@Param("uid") long user_id); + + //通过记录查询书目借还状态 + Record queryRecordById(@Param("rid") long record_id); + + //借书 + int borrowBook(Record record); + + //更新状态 + int updateStatus(@Param("id") long book_id, @Param("status") int status); + + //更新还书日期 + int updateReturnDate(@Param("id") long record_id, @Param("date") LocalDateTime date); + + //查询所有借还记录 + List queryAllRecords(); +} diff --git a/library/src/main/java/library/demo/dao/UserMapper.java b/library/src/main/java/library/demo/dao/UserMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..8d4b440f92db59e2e41799ed16bd402b3b32c8de --- /dev/null +++ b/library/src/main/java/library/demo/dao/UserMapper.java @@ -0,0 +1,37 @@ +package library.demo.dao; + +import library.demo.pojo.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface UserMapper { + + //用户注册 + int addUser(User user); + + //修改用户密码 + int updatePassword(@Param("id") long id, @Param("newPassword") String newPassword); + + //客户端用户登录 + User loginUser(@Param("id") long id, @Param("password") String password); + + //更改用户信息 + int updateInfo(@Param("email") String email, @Param("nickname") String nickname, @Param("id") long id); + + //获取用户信息 + User queryUserById(@Param("id") long user_id); + + //获取用户列表 + List queryAllUsers(); + + //根据邮箱查找用户 + User queryUserByEmail(@Param("email") String email); + + //根据用户名查找用户 + User queryUserByName(@Param("name") String name); +} diff --git a/library/src/main/java/library/demo/handler/MyExceptionHandler.java b/library/src/main/java/library/demo/handler/MyExceptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..71f32081e4343b3f24d51e678fa6435a97de6e54 --- /dev/null +++ b/library/src/main/java/library/demo/handler/MyExceptionHandler.java @@ -0,0 +1,31 @@ +package library.demo.handler; + +import org.apache.shiro.authz.AuthorizationException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.util.HashMap; +import java.util.Map; + +@RestControllerAdvice +public class MyExceptionHandler { + + @ExceptionHandler(value = AuthorizationException.class) + public Map handleException(AuthorizationException e) { + //e.printStackTrace(); + Map result = new HashMap(); + result.put("code", "1"); + //获取错误中中括号的内容 + String message = e.getMessage(); + String msg=message.substring(message.indexOf("[")+1,message.indexOf("]")); + //判断是角色错误还是权限错误 + if (message.contains("role")) { + result.put("msg", "没有管理员权限,无法访问"); + } else if (message.contains("permission")) { + result.put("msg", "对不起,您没有" + msg + "权限"); + } else { + result.put("msg", "对不起,您的权限有误"); + } + return result; + } +} diff --git a/library/src/main/java/library/demo/pojo/Book.java b/library/src/main/java/library/demo/pojo/Book.java new file mode 100644 index 0000000000000000000000000000000000000000..7c65dd3a1bcd827fcbcf2e35020796fa045a9a59 --- /dev/null +++ b/library/src/main/java/library/demo/pojo/Book.java @@ -0,0 +1,18 @@ +package library.demo.pojo; + +import lombok.*; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Book { + + private long Id; + private String Name; + private String Place; + private String Introduction; + private String Author; + private float Price; + private int Status; //0 未借出 1 借出 + +} diff --git a/library/src/main/java/library/demo/pojo/Record.java b/library/src/main/java/library/demo/pojo/Record.java new file mode 100644 index 0000000000000000000000000000000000000000..5814da5c3905f18e9c62fd388b34e5adb7756d3f --- /dev/null +++ b/library/src/main/java/library/demo/pojo/Record.java @@ -0,0 +1,21 @@ +package library.demo.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Record { + + private long Id; + private long BookId; + private long UserId; + private LocalDateTime BorrowDate; + private LocalDateTime ReturnDate; + +} diff --git a/library/src/main/java/library/demo/pojo/User.java b/library/src/main/java/library/demo/pojo/User.java new file mode 100644 index 0000000000000000000000000000000000000000..6b5054b7f0bd397a22127c983a73cb30d7f733a1 --- /dev/null +++ b/library/src/main/java/library/demo/pojo/User.java @@ -0,0 +1,19 @@ +package library.demo.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class User { + + private long Id; + private String Username; + private String Password; + private String Email; + private String Nickname; + private int Role; + +} diff --git a/library/src/main/java/library/demo/service/BookService.java b/library/src/main/java/library/demo/service/BookService.java new file mode 100644 index 0000000000000000000000000000000000000000..8d4684140c76f0f475e368143d5401a1b489b0ab --- /dev/null +++ b/library/src/main/java/library/demo/service/BookService.java @@ -0,0 +1,49 @@ +package library.demo.service; + +import library.demo.pojo.Book; +import library.demo.pojo.Record; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; +import java.util.List; + +public interface BookService { + //创建书目 + int addBook(Book book); + + //删除书目 + int deleteBook(@Param("id") long book_id); + + //更新书目 + int updateBook(Book book); + + //获取书目列表 + List queryAllBooks(); + + //获取书目信息 + Book queryBookById(long book_id); + + //查询指定书目的借还状态 + Record queryRecordByBookId(long book_id); + + //查询指定书目的所有借还记录 + List queryBookAllRecords(long book_id); + + //查询指定用户的所有借书记录 + List queryUserRecords(long user_id); + + //通过记录查询书目借还状态 + Record queryRecordById(long record_id); + + //借书 + int borrowBook(Record record); + + //更新状态 + int updateStatus(long book_id, int status); + + //更新还书日期 + int updateReturnDate(long record_id, LocalDateTime date); + + //查询所有借还记录 + List queryAllRecords(); +} diff --git a/library/src/main/java/library/demo/service/ShiroService.java b/library/src/main/java/library/demo/service/ShiroService.java new file mode 100644 index 0000000000000000000000000000000000000000..51681c295c89325dc27238c7d077deeec8fd429d --- /dev/null +++ b/library/src/main/java/library/demo/service/ShiroService.java @@ -0,0 +1,11 @@ +package library.demo.service; + +public interface ShiroService { + + //创建Token + String createToken(long userId); + + //登出 + void logout(String token); + +} diff --git a/library/src/main/java/library/demo/service/UserService.java b/library/src/main/java/library/demo/service/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..e9553bd70bbef33d0ef78db036f24dda0bdb0682 --- /dev/null +++ b/library/src/main/java/library/demo/service/UserService.java @@ -0,0 +1,32 @@ +package library.demo.service; + +import library.demo.pojo.User; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface UserService { + //用户注册 + int addUser(User user); + + //修改用户密码 + int updatePassword(long id, String newPassword); + + //客户端用户登录 + User loginUser(long id, String password); + + //更改用户信息 + int updateInfo(String email, String nickname, long id); + + //获取用户信息 + User queryUserById(long user_id); + + //获取用户列表 + List queryAllUsers(); + + //根据邮箱查找用户 + User queryUserByEmail(@Param("email") String email); + + //根据用户名查找用户 + User queryUserByName(@Param("name") String name); +} diff --git a/library/src/main/java/library/demo/serviceImpl/BookServiceImpl.java b/library/src/main/java/library/demo/serviceImpl/BookServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..552803ffa431b44b7eedfff88e20f10a155d78d0 --- /dev/null +++ b/library/src/main/java/library/demo/serviceImpl/BookServiceImpl.java @@ -0,0 +1,83 @@ +package library.demo.serviceImpl; + +import library.demo.dao.BookMapper; +import library.demo.pojo.Book; +import library.demo.pojo.Record; +import library.demo.service.BookService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class BookServiceImpl implements BookService { + + @Autowired + BookMapper bookMapper; + + @Override + public int addBook(Book book) { + return bookMapper.addBook(book); + } + + @Override + public int deleteBook(long book_id) { + return bookMapper.deleteBook(book_id); + } + + @Override + public int updateBook(Book book) { + return bookMapper.updateBook(book); + } + + @Override + public List queryAllBooks() { + return bookMapper.queryAllBooks(); + } + + @Override + public Book queryBookById(long book_id) { + return bookMapper.queryBookById(book_id); + } + + @Override + public Record queryRecordByBookId(long book_id) { + return bookMapper.queryRecordByBookId(book_id); + } + + @Override + public List queryBookAllRecords(long book_id) { + return bookMapper.queryBookAllRecords(book_id); + } + + @Override + public List queryUserRecords(long user_id) { + return bookMapper.queryUserRecords(user_id); + } + + @Override + public Record queryRecordById(long record_id) { + return bookMapper.queryRecordById(record_id); + } + + @Override + public int borrowBook(Record record) { + return bookMapper.borrowBook(record); + } + + @Override + public int updateStatus(long book_id, int status) { + return bookMapper.updateStatus(book_id,status); + } + + @Override + public int updateReturnDate(long record_id, LocalDateTime date) { + return bookMapper.updateReturnDate(record_id,date); + } + + @Override + public List queryAllRecords() { + return bookMapper.queryAllRecords(); + } +} diff --git a/library/src/main/java/library/demo/serviceImpl/ShiroServiceImpl.java b/library/src/main/java/library/demo/serviceImpl/ShiroServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1fff085bc0deb50eb15ce7ccbea0cddff8131035 --- /dev/null +++ b/library/src/main/java/library/demo/serviceImpl/ShiroServiceImpl.java @@ -0,0 +1,50 @@ +package library.demo.serviceImpl; + +import library.demo.auth.TokenGenerator; +import library.demo.dao.UserMapper; +import library.demo.service.ShiroService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +@Service +public class ShiroServiceImpl implements ShiroService { + + //12小时后失效 + private final static int EXPIRE = 12; + + @Autowired + UserMapper userMapper; + @Autowired + @Qualifier("redisTemplate") + RedisTemplate redisTemplate; + + @Override + public String createToken(long userId) { + //生成一个token + String token = TokenGenerator.generateValue(); + //判断是否生成过token + String getToken = (String) redisTemplate.opsForValue().get(String.valueOf(userId)); + if (Objects.isNull(getToken)){ + redisTemplate.opsForValue().set(String.valueOf(userId),token,EXPIRE,TimeUnit.HOURS); + redisTemplate.opsForValue().set(token,String.valueOf(userId),EXPIRE,TimeUnit.HOURS); + return token; + } else { + redisTemplate.expire(String.valueOf(userId),EXPIRE,TimeUnit.HOURS); + redisTemplate.expire(getToken,EXPIRE,TimeUnit.HOURS); + return getToken; + } + + } + + @Override + public void logout(String token) { + Object getUserId = redisTemplate.opsForValue().get(token); + redisTemplate.delete(getUserId); + redisTemplate.delete(token); + } +} diff --git a/library/src/main/java/library/demo/serviceImpl/UserServiceImpl.java b/library/src/main/java/library/demo/serviceImpl/UserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2eb9566793a6438efe7b20cca7a586ad50c8092e --- /dev/null +++ b/library/src/main/java/library/demo/serviceImpl/UserServiceImpl.java @@ -0,0 +1,56 @@ +package library.demo.serviceImpl; + +import library.demo.dao.UserMapper; +import library.demo.pojo.User; +import library.demo.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class UserServiceImpl implements UserService { + + @Autowired + UserMapper userMapper; + + @Override + public int addUser(User user) { + return userMapper.addUser(user); + } + + @Override + public int updatePassword(long id, String newPassword) { + return userMapper.updatePassword(id, newPassword); + } + + @Override + public User loginUser(long id, String password) { + return userMapper.loginUser(id, password); + } + + @Override + public int updateInfo(String email, String nickname, long id) { + return userMapper.updateInfo(email,nickname,id); + } + + @Override + public User queryUserById(long user_id) { + return userMapper.queryUserById(user_id); + } + + @Override + public List queryAllUsers() { + return userMapper.queryAllUsers(); + } + + @Override + public User queryUserByEmail(String email) { + return userMapper.queryUserByEmail(email); + } + + @Override + public User queryUserByName(String name) { + return userMapper.queryUserByName(name); + } +} diff --git a/library/src/main/java/library/demo/utils/HttpContextUtil.java b/library/src/main/java/library/demo/utils/HttpContextUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..bdf3c5f239338a95033c7f3a6215a7eeed9f3766 --- /dev/null +++ b/library/src/main/java/library/demo/utils/HttpContextUtil.java @@ -0,0 +1,23 @@ +package library.demo.utils; + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +public class HttpContextUtil { + public static HttpServletRequest getHttpServletRequest() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + } + + public static String getDomain(){ + HttpServletRequest request = getHttpServletRequest(); + StringBuffer url = request.getRequestURL(); + return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString(); + } + + public static String getOrigin(){ + HttpServletRequest request = getHttpServletRequest(); + return request.getHeader("Origin"); + } +} diff --git a/library/src/main/java/library/demo/utils/IdUtil.java b/library/src/main/java/library/demo/utils/IdUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..e313965c482561364f18d7dcc30bc84c595746e7 --- /dev/null +++ b/library/src/main/java/library/demo/utils/IdUtil.java @@ -0,0 +1,8 @@ +package library.demo.utils; + +public class IdUtil { + public static long getRandomId() { + long randomNum = System.currentTimeMillis(); + return randomNum; + } +} diff --git a/library/src/main/java/library/demo/utils/Md5SaltUtil.java b/library/src/main/java/library/demo/utils/Md5SaltUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..51121b27258108031acf81a2b1eccec08de7a896 --- /dev/null +++ b/library/src/main/java/library/demo/utils/Md5SaltUtil.java @@ -0,0 +1,48 @@ +package library.demo.utils; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Random; + +import library.demo.pojo.User; +import org.apache.tomcat.util.codec.binary.Base64; + +/* + * 实现MD5加盐加密与解密 + */ +public class Md5SaltUtil { + private static MessageDigest md5;//md5加密对象 + private static Base64 base64;//加密编码对象 + private static String salt = "";//盐 + + static { + try { + md5 = MessageDigest.getInstance("MD5");//获取MD5加密对象 + base64 = new Base64();//获取加密编码对象 + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + } + + /* + * 对password进行MD5加盐加密,返回加密过的password,并存储盐salt + */ + public static String encrypt(String username, String password) { + String lastPassword = ""; + salt = username; + String passwordSalt = password + salt;//将密码和盐拼接到一起 + try { + md5.reset();//初始化 + md5.update(passwordSalt.getBytes("UTF-8"));//将加盐密码传给消息摘要对象 + byte[] bys = md5.digest();//创建消息摘要对象 + byte[] lastPasswordStr = base64.encode(bys);//进行加密 + lastPassword = new String(lastPasswordStr); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return lastPassword; + } + +} + diff --git a/library/src/main/java/library/demo/utils/TokenUtil.java b/library/src/main/java/library/demo/utils/TokenUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..41a516f8d9bc17ff31b17289baaed72a468aebda --- /dev/null +++ b/library/src/main/java/library/demo/utils/TokenUtil.java @@ -0,0 +1,21 @@ +package library.demo.utils; + +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; + +public class TokenUtil { + /** + * 获取请求的token + */ + public static String getRequestToken(HttpServletRequest httpRequest) { + + //从header中获取token + String token = httpRequest.getHeader("access_token"); + //如果header中不存在token,则从参数中获取token + if (StringUtils.isBlank(token)) { + token = httpRequest.getParameter("access_token"); + } + return token; + } +} diff --git a/library/src/main/resources/application.yml b/library/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..d885fea5c73d10f86d507befad67caff32ce16fd --- /dev/null +++ b/library/src/main/resources/application.yml @@ -0,0 +1,13 @@ +spring: + datasource: + username: root + password: zhang2001228 + url: jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf-8 + driver-class-name: com.mysql.cj.jdbc.Driver + redis: + host: 127.0.0.1 + port: 6379 + +mybatis: + type-aliases-package: library.demo.pojo + mapper-locations: classpath:mapper/*.xml diff --git a/library/src/main/resources/mapper/BookMapper.xml b/library/src/main/resources/mapper/BookMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..4752cd58f1771ede57526cbb3d8eb8f434ea7a3f --- /dev/null +++ b/library/src/main/resources/mapper/BookMapper.xml @@ -0,0 +1,56 @@ + + + + + insert into library.book (Id, Name, Place, Introduction, Author, Price) + VALUES (#{Id}, #{Name}, #{Place}, #{Introduction}, #{Author}, #{Price}) + + + + delete from library.book where Id = #{id} + + + + + + update library.book set Name = #{Name}, Place = #{Place}, Introduction = #{Introduction}, + Author = #{Author}, Price = #{Price} where Id = #{Id} + + + + + + insert into library.record (Id, BookId, UserId, BorrowDate, ReturnDate) + VALUES (#{Id}, #{BookId}, #{UserId}, #{BorrowDate}, #{ReturnDate}) + + + + update library.book set Status = #{status} where Id = #{id} + + + + + + update library.record set ReturnDate = #{date} where Id = #{id} + + + + + + + + \ No newline at end of file diff --git a/library/src/main/resources/mapper/UserMapper.xml b/library/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..6d2f57eb4dcb88bb2412ee0fa489f2a1963f3698 --- /dev/null +++ b/library/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,38 @@ + + + + + insert into library.user (Id, Username, Password, Email, Nickname, Role) + VALUES (#{Id}, #{Username}, #{Password}, #{Email}, #{Nickname}, #{Role}) + + + + update library.user set Password = #{newPassword} where Id = #{id} + + + + + + update library.user set Email = #{email}, Nickname = #{nickname} where Id = #{id} + + + + + + + + + + \ No newline at end of file diff --git a/library/src/test/java/library/demo/DemoApplicationTests.java b/library/src/test/java/library/demo/DemoApplicationTests.java new file mode 100644 index 0000000000000000000000000000000000000000..75abb994a7eea9624e1ad954d62af76e53e14b8d --- /dev/null +++ b/library/src/test/java/library/demo/DemoApplicationTests.java @@ -0,0 +1,30 @@ +package library.demo; + +import library.demo.pojo.Book; +import library.demo.utils.Md5SaltUtil; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.redis.core.RedisTemplate; + +@SpringBootTest +class DemoApplicationTests { + @Autowired + @Qualifier("redisTemplate") + RedisTemplate redisTemplate; + + @Test + void contextLoads() { + System.out.println(Md5SaltUtil.encrypt("李四","222222")); + } + + @Test + public void redisTest(){ + Long id = 1640003394552L; + redisTemplate.opsForValue().set(id+"",123); + System.out.println(redisTemplate.opsForValue().get(id+"")); + + } + +} diff --git a/library/target/classes/application.yml b/library/target/classes/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..d885fea5c73d10f86d507befad67caff32ce16fd --- /dev/null +++ b/library/target/classes/application.yml @@ -0,0 +1,13 @@ +spring: + datasource: + username: root + password: zhang2001228 + url: jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf-8 + driver-class-name: com.mysql.cj.jdbc.Driver + redis: + host: 127.0.0.1 + port: 6379 + +mybatis: + type-aliases-package: library.demo.pojo + mapper-locations: classpath:mapper/*.xml diff --git a/library/target/classes/mapper/BookMapper.xml b/library/target/classes/mapper/BookMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..4752cd58f1771ede57526cbb3d8eb8f434ea7a3f --- /dev/null +++ b/library/target/classes/mapper/BookMapper.xml @@ -0,0 +1,56 @@ + + + + + insert into library.book (Id, Name, Place, Introduction, Author, Price) + VALUES (#{Id}, #{Name}, #{Place}, #{Introduction}, #{Author}, #{Price}) + + + + delete from library.book where Id = #{id} + + + + + + update library.book set Name = #{Name}, Place = #{Place}, Introduction = #{Introduction}, + Author = #{Author}, Price = #{Price} where Id = #{Id} + + + + + + insert into library.record (Id, BookId, UserId, BorrowDate, ReturnDate) + VALUES (#{Id}, #{BookId}, #{UserId}, #{BorrowDate}, #{ReturnDate}) + + + + update library.book set Status = #{status} where Id = #{id} + + + + + + update library.record set ReturnDate = #{date} where Id = #{id} + + + + + + + + \ No newline at end of file diff --git a/library/target/classes/mapper/UserMapper.xml b/library/target/classes/mapper/UserMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..6d2f57eb4dcb88bb2412ee0fa489f2a1963f3698 --- /dev/null +++ b/library/target/classes/mapper/UserMapper.xml @@ -0,0 +1,38 @@ + + + + + insert into library.user (Id, Username, Password, Email, Nickname, Role) + VALUES (#{Id}, #{Username}, #{Password}, #{Email}, #{Nickname}, #{Role}) + + + + update library.user set Password = #{newPassword} where Id = #{id} + + + + + + update library.user set Email = #{email}, Nickname = #{nickname} where Id = #{id} + + + + + + + + + + \ No newline at end of file diff --git "a/library/\346\274\224\347\244\272\350\247\206\351\242\221.mp4" "b/library/\346\274\224\347\244\272\350\247\206\351\242\221.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..a139ee1d197f78a92e7855755e911428059a1c42 Binary files /dev/null and "b/library/\346\274\224\347\244\272\350\247\206\351\242\221.mp4" differ