├── .gitattributes ├── .idea ├── .name ├── artifacts │ ├── web_ssm_war.xml │ └── web_ssm_war_exploded.xml ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── dictionaries │ └── lixiaodong.xml ├── encodings.xml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── libraries │ ├── Maven__aopalliance_aopalliance_1_0.xml │ ├── Maven__com_alibaba_fastjson_1_1_41.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_8_0.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_8_0.xml │ ├── Maven__com_sun_mail_javax_mail_1_5_0.xml │ ├── Maven__commons_codec_commons_codec_1_9.xml │ ├── Maven__commons_dbcp_commons_dbcp_1_2_2.xml │ ├── Maven__commons_fileupload_commons_fileupload_1_3_1.xml │ ├── Maven__commons_io_commons_io_2_4.xml │ ├── Maven__commons_logging_commons_logging_1_2.xml │ ├── Maven__commons_pool_commons_pool_1_3.xml │ ├── Maven__javax_activation_activation_1_1.xml │ ├── Maven__javax_javaee_api_7_0.xml │ ├── Maven__javax_servlet_javax_servlet_api_3_0_1.xml │ ├── Maven__jstl_jstl_1_2.xml │ ├── Maven__junit_junit_4_11.xml │ ├── Maven__log4j_log4j_1_2_17.xml │ ├── Maven__mysql_mysql_connector_java_5_1_29.xml │ ├── Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml │ ├── Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml │ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml │ ├── Maven__org_mybatis_mybatis_3_2_8.xml │ ├── Maven__org_mybatis_mybatis_spring_1_2_2.xml │ ├── Maven__org_slf4j_slf4j_api_1_7_18.xml │ ├── Maven__org_slf4j_slf4j_log4j12_1_7_18.xml │ ├── Maven__org_springframework_spring_aop_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_beans_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_context_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_context_support_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_core_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_expression_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_jdbc_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_oxm_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_test_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_tx_4_2_5_RELEASE.xml │ ├── Maven__org_springframework_spring_web_4_2_5_RELEASE.xml │ └── Maven__org_springframework_spring_webmvc_4_2_5_RELEASE.xml ├── misc.xml ├── modules.xml ├── sqldialects.xml ├── uiDesigner.xml ├── vcs.xml └── workspace.xml ├── README.md ├── pom.xml ├── src └── main │ ├── java │ ├── SQL │ │ ├── t_book.sql │ │ └── t_user.sql │ └── com │ │ └── ly │ │ └── ssm │ │ ├── controller │ │ ├── BookController.java │ │ └── UserController.java │ │ ├── dao │ │ ├── BookDao.java │ │ └── UserDao.java │ │ ├── model │ │ ├── Book.java │ │ └── User.java │ │ ├── service │ │ ├── BookService.java │ │ ├── UserService.java │ │ └── impl │ │ │ ├── BookServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ └── utils │ │ └── Md5.java │ ├── resources │ ├── jdbc.properties │ ├── log4j.properties │ ├── mapping │ │ ├── BooksMapper.xml │ │ └── UserMapper.xml │ ├── spring-mvc.xml │ └── spring-mybatis.xml │ └── webapp │ ├── Mybook.html │ ├── UpdatePwd.html │ ├── WEB-INF │ └── web.xml │ ├── css │ ├── bootstrap.min.css │ ├── reset.css │ └── styles.css │ ├── index.html │ ├── indexpage.html │ └── js │ ├── bootstrap.min.js │ ├── jq.validate.js │ ├── jquery-1.10.2.min.js │ ├── jquery.poshytip.js │ ├── loginJS.js │ └── searchJS.js ├── target ├── classes │ ├── com │ │ └── ly │ │ │ └── ssm │ │ │ ├── controller │ │ │ ├── BookController.class │ │ │ └── UserController.class │ │ │ ├── dao │ │ │ ├── BookDao.class │ │ │ └── UserDao.class │ │ │ ├── model │ │ │ ├── Book.class │ │ │ └── User.class │ │ │ ├── service │ │ │ ├── BookService.class │ │ │ ├── UserService.class │ │ │ └── impl │ │ │ │ ├── BookServiceImpl.class │ │ │ │ └── UserServiceImpl.class │ │ │ └── utils │ │ │ └── Md5.class │ ├── common.properties │ ├── jdbc.properties │ ├── log4j.properties │ ├── mapping │ │ ├── BooksMapper.xml │ │ └── UserMapper.xml │ ├── spring-mvc.xml │ └── spring-mybatis.xml ├── maven-archiver │ └── pom.properties ├── web-ssm.war └── web-ssm │ ├── META-INF │ └── MANIFEST.MF │ ├── Mybook.html │ ├── UpdatePwd.html │ ├── WEB-INF │ ├── classes │ │ ├── SQL │ │ │ └── t_user.sql │ │ ├── com │ │ │ └── ly │ │ │ │ └── ssm │ │ │ │ ├── controller │ │ │ │ ├── BookController.class │ │ │ │ └── UserController.class │ │ │ │ ├── dao │ │ │ │ ├── BookDao.class │ │ │ │ └── UserDao.class │ │ │ │ ├── model │ │ │ │ ├── Book.class │ │ │ │ └── User.class │ │ │ │ ├── service │ │ │ │ ├── BookService.class │ │ │ │ ├── UserService.class │ │ │ │ └── impl │ │ │ │ │ ├── BookServiceImpl.class │ │ │ │ │ └── UserServiceImpl.class │ │ │ │ └── utils │ │ │ │ └── Md5.class │ │ ├── common.properties │ │ ├── jdbc.properties │ │ ├── log4j.properties │ │ ├── mapping │ │ │ ├── BooksMapper.xml │ │ │ └── UserMapper.xml │ │ ├── spring-mvc.xml │ │ └── spring-mybatis.xml │ ├── lib │ │ ├── activation-1.1.jar │ │ ├── aopalliance-1.0.jar │ │ ├── commons-codec-1.9.jar │ │ ├── commons-dbcp-1.2.2.jar │ │ ├── commons-fileupload-1.3.1.jar │ │ ├── commons-io-2.4.jar │ │ ├── commons-logging-1.2.jar │ │ ├── commons-pool-1.3.jar │ │ ├── fastjson-1.1.41.jar │ │ ├── jackson-annotations-2.8.0.jar │ │ ├── jackson-core-2.8.0.jar │ │ ├── jackson-core-asl-1.9.13.jar │ │ ├── jackson-databind-2.8.0.jar │ │ ├── jackson-mapper-asl-1.9.13.jar │ │ ├── javaee-api-7.0.jar │ │ ├── javax.mail-1.5.0.jar │ │ ├── javax.servlet-api-3.0.1.jar │ │ ├── jstl-1.2.jar │ │ ├── log4j-1.2.17.jar │ │ ├── mybatis-3.2.8.jar │ │ ├── mybatis-spring-1.2.2.jar │ │ ├── mysql-connector-java-5.1.29.jar │ │ ├── slf4j-api-1.7.18.jar │ │ ├── slf4j-log4j12-1.7.18.jar │ │ ├── spring-aop-4.2.5.RELEASE.jar │ │ ├── spring-beans-4.2.5.RELEASE.jar │ │ ├── spring-context-4.2.5.RELEASE.jar │ │ ├── spring-context-support-4.2.5.RELEASE.jar │ │ ├── spring-core-4.2.5.RELEASE.jar │ │ ├── spring-expression-4.2.5.RELEASE.jar │ │ ├── spring-jdbc-4.2.5.RELEASE.jar │ │ ├── spring-oxm-4.2.5.RELEASE.jar │ │ ├── spring-test-4.2.5.RELEASE.jar │ │ ├── spring-tx-4.2.5.RELEASE.jar │ │ ├── spring-web-4.2.5.RELEASE.jar │ │ └── spring-webmvc-4.2.5.RELEASE.jar │ └── web.xml │ ├── css │ ├── bootstrap.min.css │ ├── reset.css │ └── styles.css │ ├── images │ ├── 1490147603164.jpg │ ├── 1490148200835.jpg │ └── 1511969165373.jpg │ ├── index.html │ ├── indexpage.html │ ├── js │ ├── bootstrap.min.js │ ├── jq.validate.js │ ├── jquery-1.10.2.min.js │ ├── jquery.poshytip.js │ ├── loginJS.js │ └── searchJS.js │ └── static │ └── vince │ └── rain │ └── css │ └── 1.jpg └── web-ssm.iml /.gitattributes: -------------------------------------------------------------------------------- 1 | *.html linguist-language=Java 2 | *.css linguist-language=Java 3 | *.js linguist-language=Java 4 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | web-ssm -------------------------------------------------------------------------------- /.idea/artifacts/web_ssm_war.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/target 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/artifacts/web_ssm_war_exploded.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/target/web-ssm 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/dictionaries/lixiaodong.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_alibaba_fastjson_1_1_41.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_mail_javax_mail_1_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_codec_commons_codec_1_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_dbcp_commons_dbcp_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_io_commons_io_2_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_pool_commons_pool_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_activation_activation_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_javaee_api_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jstl_jstl_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__log4j_log4j_1_2_17.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__mysql_mysql_connector_java_5_1_29.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_3_2_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_spring_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_18.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_18.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_aop_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_beans_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_support_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_core_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_expression_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jdbc_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_oxm_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_test_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_tx_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_web_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_webmvc_4_2_5_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Android 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/sqldialects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LibrarySystem 2 | SSM+maven实现图书管理系统 3 | 大一写的代码 丑到不行嘤嘤嘤 4 | 部署在tomcat8上运行即可,项目是入门学习spring的时候写的,各方面比较简单容易理解但是功能并不完善,但是环境都配置好了,可以基于这个框架重新写新项目,可以进一步完善,SQL文件也提供了。 5 | 6 | #### 另外写的一个心理咨询预约系统 也是基于ssm的 比这个完善一些 可以参考一下 7 | https://github.com/jsphLim/Psychological-counseling-system 8 | 9 | 项目目录结构 10 | 11 | -Demo 12 | -src 13 | -项目主包 14 | -controller 15 | -model 16 | -dao 17 | -service 18 | -web 19 | -WEB-INF 20 | -log4j.properties 21 | -spring-mybatis.xml 22 | -springMVC-config.xml 23 | -web.xml 24 | -index.jsp 25 | -pom.xml 26 | 27 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | com.ly.web 5 | web-ssm 6 | war 7 | 1.0-SNAPSHOT 8 | web-ssm Maven Webapp 9 | http://maven.apache.org 10 | 11 | UTF-8 12 | UTF-8 13 | 14 | 15 | 4.2.5.RELEASE 16 | 17 | 18 | 3.2.8 19 | 20 | 21 | 5.1.29 22 | 23 | 24 | 1.7.18 25 | 1.2.17 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | jstl 34 | jstl 35 | 1.2 36 | 37 | 38 | 39 | javax 40 | javaee-api 41 | 7.0 42 | 43 | 44 | 45 | 46 | junit 47 | junit 48 | 4.11 49 | 50 | test 51 | 52 | 53 | 54 | 55 | org.springframework 56 | spring-core 57 | ${spring.version} 58 | 59 | 60 | org.springframework 61 | spring-web 62 | ${spring.version} 63 | 64 | 65 | org.springframework 66 | spring-oxm 67 | ${spring.version} 68 | 69 | 70 | org.springframework 71 | spring-tx 72 | ${spring.version} 73 | 74 | 75 | org.springframework 76 | spring-jdbc 77 | ${spring.version} 78 | 79 | 80 | org.springframework 81 | spring-webmvc 82 | ${spring.version} 83 | 84 | 85 | org.springframework 86 | spring-context 87 | ${spring.version} 88 | 89 | 90 | org.springframework 91 | spring-context-support 92 | ${spring.version} 93 | 94 | 95 | org.springframework 96 | spring-aop 97 | ${spring.version} 98 | 99 | 100 | 101 | org.springframework 102 | spring-test 103 | ${spring.version} 104 | 105 | 106 | 107 | 108 | org.mybatis 109 | mybatis 110 | ${mybatis.version} 111 | 112 | 113 | 114 | 115 | org.mybatis 116 | mybatis-spring 117 | 1.2.2 118 | 119 | 120 | 121 | 122 | mysql 123 | mysql-connector-java 124 | ${mysql-driver.version} 125 | 126 | 127 | 128 | commons-dbcp 129 | commons-dbcp 130 | 1.2.2 131 | 132 | 133 | javax.servlet 134 | javax.servlet-api 135 | 3.0.1 136 | 137 | 138 | 139 | 140 | com.alibaba 141 | fastjson 142 | 1.1.41 143 | 144 | 145 | 146 | 147 | log4j 148 | log4j 149 | ${log4j.version} 150 | 151 | 152 | org.slf4j 153 | slf4j-api 154 | ${slf4j.version} 155 | 156 | 157 | org.slf4j 158 | slf4j-log4j12 159 | ${slf4j.version} 160 | 161 | 162 | 163 | 164 | 165 | org.codehaus.jackson 166 | jackson-mapper-asl 167 | 1.9.13 168 | 169 | 170 | 171 | com.fasterxml.jackson.core 172 | jackson-core 173 | 2.8.0 174 | 175 | 176 | 177 | com.fasterxml.jackson.core 178 | jackson-databind 179 | 2.8.0 180 | 181 | 182 | 183 | commons-fileupload 184 | commons-fileupload 185 | 1.3.1 186 | 187 | 188 | 189 | commons-io 190 | commons-io 191 | 2.4 192 | 193 | 194 | 195 | commons-codec 196 | commons-codec 197 | 1.9 198 | 199 | 200 | 201 | 202 | web-ssm 203 | 204 | 205 | -------------------------------------------------------------------------------- /src/main/java/SQL/t_book.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat MySQL Data Transfer 3 | 4 | Source Server : zhewaida 5 | Source Server Version : 50540 6 | Source Host : localhost:3306 7 | Source Database : userinfo 8 | 9 | Target Server Type : MYSQL 10 | Target Server Version : 50540 11 | File Encoding : 65001 12 | 13 | Date: 2018-01-20 01:20:10 14 | */ 15 | 16 | SET FOREIGN_KEY_CHECKS=0; 17 | 18 | -- ---------------------------- 19 | -- Table structure for `t_book` 20 | -- ---------------------------- 21 | DROP TABLE IF EXISTS `t_book`; 22 | CREATE TABLE `t_book` ( 23 | `id` bigint(20) NOT NULL AUTO_INCREMENT, 24 | `book_name` varchar(255) NOT NULL, 25 | `book_writer` varchar(255) NOT NULL, 26 | `book_publisher` varchar(255) NOT NULL, 27 | `book_isrent` bigint(20) NOT NULL, 28 | `book_person` varchar(20) NOT NULL, 29 | PRIMARY KEY (`id`) 30 | ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 31 | 32 | -- ---------------------------- 33 | -- Records of t_book 34 | -- ---------------------------- 35 | INSERT INTO `t_book` VALUES ('0', '算法导论', 'Thomas', '机械工业出版社', '0', ''); 36 | INSERT INTO `t_book` VALUES ('1', '机器学习', '周志华', '清华大学出版社', '1', 'linyue'); 37 | INSERT INTO `t_book` VALUES ('2', '实战机器学习', 'Peter', '人民邮电出版社', '1', 'linyue'); 38 | -------------------------------------------------------------------------------- /src/main/java/SQL/t_user.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat MySQL Data Transfer 3 | 4 | Source Server : zhewaida 5 | Source Server Version : 50540 6 | Source Host : localhost:3306 7 | Source Database : userinfo 8 | 9 | Target Server Type : MYSQL 10 | Target Server Version : 50540 11 | File Encoding : 65001 12 | 13 | Date: 2018-01-20 01:20:32 14 | */ 15 | 16 | SET FOREIGN_KEY_CHECKS=0; 17 | 18 | -- ---------------------------- 19 | -- Table structure for `t_user` 20 | -- ---------------------------- 21 | DROP TABLE IF EXISTS `t_user`; 22 | CREATE TABLE `t_user` ( 23 | `id` bigint(11) NOT NULL AUTO_INCREMENT, 24 | `user_name` varchar(40) NOT NULL, 25 | `user_email` varchar(50) NOT NULL, 26 | `user_pwd` varchar(50) NOT NULL, 27 | PRIMARY KEY (`id`) 28 | ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; 29 | 30 | -- ---------------------------- 31 | -- Records of t_user 32 | -- ---------------------------- 33 | INSERT INTO `t_user` VALUES ('1', 'linyue', '105055@qq.com', '4607E782C4D86FD5364D7E4508BB10D9'); 34 | INSERT INTO `t_user` VALUES ('3', 'yansheng', '1526232@gmail.com', 'E10ADC3949BA59ABBE56E057F20F883E'); 35 | INSERT INTO `t_user` VALUES ('4', 'linyyy', '16161@qq.com', 'E10ADC3949BA59ABBE56E057F20F883E'); 36 | INSERT INTO `t_user` VALUES ('5', 'test1', '123456@gmail.com', 'E10ADC3949BA59ABBE56E057F20F883E'); 37 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/controller/BookController.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.controller; 2 | 3 | 4 | import com.alibaba.fastjson.JSONArray; 5 | import com.alibaba.fastjson.JSONObject; 6 | import com.ly.ssm.model.Book; 7 | import com.ly.ssm.service.BookService; 8 | import org.apache.log4j.Logger; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.web.HttpRequestHandler; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.ResponseBody; 13 | 14 | import javax.annotation.Resource; 15 | import javax.servlet.http.HttpServletRequest; 16 | import javax.servlet.http.HttpServletResponse; 17 | import javax.servlet.http.HttpSession; 18 | import java.util.List; 19 | 20 | @Controller 21 | public class BookController { 22 | private Logger log = Logger.getLogger(UserController.class); 23 | @Resource 24 | private BookService bookService; 25 | 26 | @RequestMapping("search") 27 | @ResponseBody 28 | public JSONArray search_books(HttpServletRequest request, HttpServletResponse response){ 29 | String bookname = request.getParameter("bookName"); 30 | System.out.println(bookname); 31 | List books = bookService.selectByName(bookname); 32 | 33 | JSONArray json = new JSONArray(); 34 | 35 | for(Book b : books){ 36 | JSONObject jo = new JSONObject(); 37 | jo.put("book_id",b.getId()); 38 | jo.put("bookName", b.getBookName()); 39 | jo.put("bookWriter", b.getBookWriter()); 40 | jo.put("Publisher", b.getPublisher()); 41 | jo.put("isrent",b.getIsRent()); 42 | json.add(jo); 43 | } 44 | HttpSession session = request.getSession(); 45 | session.setAttribute("searchResult",json); 46 | System.out.println(json.toString()); 47 | return json; 48 | } 49 | 50 | @RequestMapping("borrowBook") 51 | @ResponseBody 52 | public boolean borrow(HttpServletRequest request,HttpServletResponse response){ 53 | Long id = new Long(request.getParameter("id")); 54 | System.out.println(id); 55 | Object user = request.getSession().getAttribute("user"); 56 | System.out.println(user.toString()); 57 | bookService.borrow(id,user.toString()); 58 | return true; 59 | } 60 | 61 | @RequestMapping("showBorrow") 62 | @ResponseBody 63 | public JSONArray showBorrow(HttpServletRequest request,HttpServletResponse response){ 64 | Object user = request.getSession().getAttribute("user"); 65 | System.out.println(user.toString()); 66 | List books = bookService.selectBookByBorrowPerson(user.toString()); 67 | 68 | JSONArray json = new JSONArray(); 69 | 70 | for(Book b : books){ 71 | JSONObject jo = new JSONObject(); 72 | jo.put("book_id",b.getId()); 73 | jo.put("bookName", b.getBookName()); 74 | jo.put("bookWriter", b.getBookWriter()); 75 | jo.put("Publisher", b.getPublisher()); 76 | jo.put("isrent",b.getIsRent()); 77 | json.add(jo); 78 | } 79 | System.out.println(json.toString()); 80 | return json; 81 | } 82 | 83 | @RequestMapping("returnBook") 84 | @ResponseBody 85 | public boolean returnBook(HttpServletRequest request,HttpServletResponse response){ 86 | Long id = new Long(request.getParameter("id")); 87 | System.out.println(id); 88 | bookService.returnBook(id); 89 | return true; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.controller; 2 | 3 | import com.ly.ssm.model.User; 4 | import com.ly.ssm.service.UserService; 5 | import com.ly.ssm.utils.Md5; 6 | import javafx.scene.control.RadioMenuItem; 7 | import org.apache.commons.io.FileUtils; 8 | import org.apache.ibatis.annotations.Param; 9 | import org.apache.log4j.ConsoleAppender; 10 | import org.apache.log4j.Logger; 11 | import org.springframework.stereotype.Controller; 12 | import org.springframework.ui.Model; 13 | import org.springframework.web.bind.annotation.*; 14 | import org.springframework.web.multipart.MultipartFile; 15 | import org.springframework.web.multipart.commons.CommonsMultipartFile; 16 | 17 | import javax.annotation.Resource; 18 | import javax.servlet.http.HttpServletRequest; 19 | import javax.servlet.http.HttpServletResponse; 20 | import javax.servlet.http.HttpSession; 21 | //import java.io.Console; 22 | import java.io.File; 23 | import java.io.IOException; 24 | import java.io.UnsupportedEncodingException; 25 | import java.net.URLDecoder; 26 | import java.net.URLEncoder; 27 | import java.util.Date; 28 | import java.util.List; 29 | import java.util.Random; 30 | import java.util.UUID; 31 | 32 | /** 33 | * Created by ly on 2017/11/30. 34 | */ 35 | 36 | @Controller 37 | public class UserController { 38 | 39 | private Logger log = Logger.getLogger(UserController.class); 40 | @Resource 41 | private UserService userService; 42 | 43 | 44 | 45 | @RequestMapping("login") 46 | @ResponseBody 47 | public boolean login(HttpServletRequest request, HttpServletResponse response) { 48 | String username = request.getParameter("username"); 49 | String password = request.getParameter("password"); 50 | System.out.println(username+password); 51 | Md5 md = new Md5(); 52 | String ps = md.MD5(password); 53 | HttpSession session = request.getSession(); 54 | User user=userService.checkLogin(username,ps); 55 | if(user!=null){ 56 | session.setAttribute("user", user.getUserName()); 57 | return true; 58 | } 59 | // System.out.print(111); 60 | return false; 61 | } 62 | 63 | @RequestMapping("register") 64 | @ResponseBody 65 | public boolean register(HttpServletRequest request, HttpServletResponse response) { 66 | String username = request.getParameter("username"); 67 | String password = request.getParameter("password"); 68 | String email = request.getParameter("email"); 69 | System.out.println(username+password+email); 70 | Md5 md = new Md5(); 71 | String ps = md.MD5(password); 72 | HttpSession session = request.getSession(); 73 | boolean rg =userService.checkRegister(username,ps,email); 74 | if(rg){ 75 | return true; 76 | } 77 | // System.out.print(111); 78 | return false; 79 | } 80 | 81 | @RequestMapping("logout") 82 | @ResponseBody 83 | public boolean logout(HttpServletRequest request,HttpServletResponse response){ 84 | Object user = request.getSession().getAttribute("user"); 85 | if(user!=null){ 86 | request.getSession().removeAttribute("user"); 87 | return true; 88 | } 89 | return false; 90 | } 91 | 92 | @RequestMapping("online") 93 | @ResponseBody 94 | public String online(HttpServletRequest request,HttpServletResponse response){ 95 | Object user = request.getSession().getAttribute("user"); 96 | 97 | if (user != null) { 98 | System.out.println("username"+user); 99 | return user.toString(); 100 | } else { 101 | return null; 102 | } 103 | } 104 | @RequestMapping("updatepass") 105 | @ResponseBody 106 | public boolean updatePass(HttpServletRequest request,HttpServletResponse response){ 107 | Object user = request.getSession().getAttribute("user"); 108 | Md5 md = new Md5(); 109 | String pss = request.getParameter("password"); 110 | System.out.println(pss); 111 | String newPass = md.MD5(pss); 112 | userService.updatePass(newPass,user.toString()); 113 | request.getSession().removeAttribute("user"); 114 | return true; 115 | } 116 | 117 | } 118 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/dao/BookDao.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.dao; 2 | 3 | import com.ly.ssm.model.Book; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | @Repository 10 | public interface BookDao { 11 | 12 | List selectBookByName(@Param("bookName") String bookName); 13 | List selectBookByWriter(@Param("bookWriter") String bookWriter); 14 | List selectBookByBorrowPerson(@Param("borrow_person") String PersonName); 15 | Book selectBookById(@Param("id") Long id); 16 | void save(Book book); 17 | void borrow(@Param("id") Long id,@Param("borrow_person") String userName); 18 | void returnBook(@Param("id") Long id); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.dao; 2 | 3 | import com.ly.ssm.model.User; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.springframework.stereotype.Repository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by ly on 2017/11/30. 11 | */ 12 | @Repository 13 | public interface UserDao { 14 | 15 | // User selectUserById(@Param("userId") Long userId); 16 | // 17 | // List selectAllUser(); 18 | // 19 | // List findUserName(@Param("userName")String userName,@Param("userPhone")String userPhone); 20 | 21 | void save(User user); 22 | 23 | void update(User user); 24 | 25 | User selectUser(@Param("userName") String userName); 26 | 27 | void updatePass(@Param("userPwd") String newPass,@Param("userName") String username); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/model/Book.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.model; 2 | 3 | public class Book { 4 | private Long id; 5 | private String bookName; 6 | private String bookWriter; 7 | private String Publisher; 8 | private int isRent; 9 | private String borrow_person; 10 | 11 | public String getBookName() { 12 | return bookName; 13 | } 14 | 15 | public void setBookName(String bookName) { 16 | this.bookName = bookName; 17 | } 18 | 19 | public Long getId() { 20 | return id; 21 | } 22 | 23 | public void setId(Long id) { 24 | this.id = id; 25 | } 26 | 27 | public String getBookWriter() { 28 | return bookWriter; 29 | } 30 | 31 | public void setBookWriter(String bookWriter) { 32 | this.bookWriter = bookWriter; 33 | } 34 | 35 | public String getPublisher() { 36 | return Publisher; 37 | } 38 | 39 | public void setPublisher(String publisher) { 40 | Publisher = publisher; 41 | } 42 | 43 | public int getIsRent() { 44 | return isRent; 45 | } 46 | 47 | public void setIsRent(int isRent) { 48 | this.isRent = isRent; 49 | } 50 | 51 | public String getBorrow_person() { 52 | return borrow_person; 53 | } 54 | 55 | public void setBorrow_person(String borrow_person) { 56 | this.borrow_person = borrow_person; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/model/User.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.model; 2 | import org.springframework.web.multipart.MultipartFile; 3 | 4 | import java.util.Date; 5 | import java.util.Random; 6 | /** 7 | * Created by ly on 2017/11/30. 8 | */ 9 | public class User { 10 | 11 | private Long id; 12 | private String userName; 13 | private String userEmail; 14 | private String userPwd; 15 | private MultipartFile file; 16 | private String imageUrl; 17 | 18 | public Long getId() { 19 | return id; 20 | } 21 | 22 | public void setId(long id) { 23 | this.id = id; 24 | } 25 | 26 | public String getUserName() { 27 | return userName; 28 | } 29 | 30 | public void setUserName(String userName) { 31 | this.userName = userName; 32 | } 33 | 34 | 35 | public String getUserEmail() { 36 | return userEmail; 37 | } 38 | 39 | public void setUserEmail(String userEmail) { 40 | this.userEmail = userEmail; 41 | } 42 | 43 | public String getUserPwd() { 44 | return userPwd; 45 | } 46 | 47 | public void setUserPwd(String userPwd) { 48 | this.userPwd = userPwd; 49 | } 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/service/BookService.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.service; 2 | 3 | import com.ly.ssm.model.Book; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | import java.util.List; 7 | 8 | public interface BookService { 9 | List selectByName(String bookName); 10 | Book selectBookById(Long id); 11 | List selectBookByBorrowPerson(String PersonName); 12 | List selectByWriter(String writerName); 13 | void save(Book book); 14 | void borrow(Long id,String userName); 15 | void returnBook(Long id); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.service; 2 | 3 | import com.ly.ssm.model.User; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by ly on 2017/11/30. 9 | */ 10 | public interface UserService { 11 | 12 | // List getAllUser(); 13 | 14 | // User getUserById(Long userId); 15 | 16 | void save(User user); 17 | 18 | void update(User user); 19 | 20 | User checkLogin(String userName, String userPwd); 21 | 22 | boolean checkRegister(String userName,String userPWd,String email); 23 | 24 | boolean updatePass(String newPass,String username); 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/service/impl/BookServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.service.impl; 2 | 3 | import com.ly.ssm.dao.BookDao; 4 | import com.ly.ssm.model.Book; 5 | import com.ly.ssm.service.BookService; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | import javax.annotation.Resource; 10 | import java.util.List; 11 | @Service 12 | @Transactional(rollbackFor = Exception.class) 13 | public class BookServiceImpl implements BookService { 14 | @Resource 15 | private BookDao bookDao; 16 | 17 | public List selectByName(String bookName){ 18 | List books = bookDao.selectBookByName(bookName); 19 | return books; 20 | } 21 | 22 | public Book selectBookById(Long id) { 23 | Book book = bookDao.selectBookById(id); 24 | return book; 25 | } 26 | 27 | public List selectBookByBorrowPerson(String PersonName) { 28 | List books = bookDao.selectBookByBorrowPerson(PersonName); 29 | return books; 30 | } 31 | 32 | public List selectByWriter(String writerName){ 33 | List books = bookDao.selectBookByWriter(writerName); 34 | return books; 35 | } 36 | public void save(Book book){ 37 | bookDao.save(book); 38 | } 39 | 40 | public void borrow(Long id,String userName) { 41 | bookDao.borrow(id,userName); 42 | } 43 | 44 | public void returnBook(Long id) { 45 | bookDao.returnBook(id); 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.service.impl; 2 | 3 | import com.ly.ssm.dao.UserDao; 4 | import com.ly.ssm.model.User; 5 | import com.ly.ssm.service.UserService; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | import javax.annotation.Resource; 10 | import java.util.List; 11 | 12 | /** 13 | * Created by ly on 2017/11/30. 14 | */ 15 | @Service 16 | @Transactional(rollbackFor = Exception.class) 17 | public class UserServiceImpl implements UserService { 18 | 19 | @Resource 20 | private UserDao userDao; 21 | 22 | // public User getUserById(Long userId) { 23 | // return userDao.selectUserById(userId); 24 | // } 25 | 26 | // public List findUserName(String userName,String userPhone) { 27 | // List userList=userDao.findUserName(userName,userPhone); 28 | // return userList; 29 | // } 30 | 31 | public void save(User user) { 32 | userDao.save(user); 33 | } 34 | 35 | public void update(User user) { 36 | userDao.update(user); 37 | } 38 | 39 | 40 | // public List getAllUser() { 41 | // return userDao.selectAllUser(); 42 | // } 43 | 44 | public User checkLogin(String userName, String userPwd) { 45 | //根据用户名实例化用户对象 46 | User user = userDao.selectUser(userName); 47 | if (user != null && user.getUserPwd().equals(userPwd)) { 48 | return user; 49 | } 50 | return null; 51 | } 52 | 53 | public boolean checkRegister(String userName, String userPwd,String email) { 54 | //根据用户名实例化用户对象 55 | User user = userDao.selectUser(userName); 56 | if(user!=null){ 57 | return false; 58 | } 59 | else{ 60 | User updateuser = new User(); 61 | updateuser.setUserName(userName); 62 | updateuser.setUserPwd(userPwd); 63 | updateuser.setUserEmail(email); 64 | save(updateuser); 65 | return true; 66 | } 67 | } 68 | 69 | public boolean updatePass(String newPass,String username) { 70 | userDao.updatePass(newPass,username); 71 | return true; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/ly/ssm/utils/Md5.java: -------------------------------------------------------------------------------- 1 | package com.ly.ssm.utils; 2 | 3 | import java.security.MessageDigest; 4 | 5 | /** 6 | * MD5加密工具类 7 | * <功能详细描述> 8 | * 9 | * @author chenlujun 10 | * @version [版本号, 2014年10月1日] 11 | * @see [相关类/方法] 12 | * @since [产品/模块版本] 13 | */ 14 | public class Md5 15 | { 16 | public final static String MD5(String pwd) { 17 | //用于加密的字符 18 | char md5String[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 19 | 'A', 'B', 'C', 'D', 'E', 'F' }; 20 | try { 21 | //使用平台的默认字符集将此 String 编码为 byte序列,并将结果存储到一个新的 byte数组中 22 | byte[] btInput = pwd.getBytes(); 23 | 24 | //信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。 25 | MessageDigest mdInst = MessageDigest.getInstance("MD5"); 26 | 27 | //MessageDigest对象通过使用 update方法处理数据, 使用指定的byte数组更新摘要 28 | mdInst.update(btInput); 29 | 30 | // 摘要更新之后,通过调用digest()执行哈希计算,获得密文 31 | byte[] md = mdInst.digest(); 32 | 33 | // 把密文转换成十六进制的字符串形式 34 | int j = md.length; 35 | char str[] = new char[j * 2]; 36 | int k = 0; 37 | for (int i = 0; i < j; i++) { // i = 0 38 | byte byte0 = md[i]; //95 39 | str[k++] = md5String[byte0 >>> 4 & 0xf]; // 5 40 | str[k++] = md5String[byte0 & 0xf]; // F 41 | } 42 | 43 | //返回经过加密后的字符串 44 | return new String(str); 45 | 46 | } catch (Exception e) { 47 | return null; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /src/main/resources/jdbc.properties: -------------------------------------------------------------------------------- 1 | driverClasss=com.mysql.jdbc.Driver 2 | jdbcUrl=jdbc:mysql://localhost:3306/xxxx 3 | username=root 4 | password=xxxxx 5 | 6 | #�����ʼ������ 7 | initialSize=0 8 | #������������� 9 | maxActive=20 10 | #���������� 11 | maxIdle=20 12 | #������С���� 13 | minIdle=1 14 | #������ȴ�ʱ�� 15 | maxWait=60000 16 | -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Configures Log4j for Tomcat and Sakai 2 | 3 | # use "A" for log in with catalina.out (actually standard output) 4 | log4j.rootLogger=WARN, Sakai 5 | 6 | # Configuration for standard output ("catalina.out" in Tomcat). 7 | log4j.appender.Sakai=org.apache.log4j.ConsoleAppender 8 | log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 9 | #log4j.appender.Sakai.layout.ConversionPattern=%p: %m (%d %t_%c)%n 10 | 11 | # A more descriptive but lower performance logging pattern 12 | log4j.appender.Sakai.layout.ConversionPattern=%d{ISO8601} %5p %t %c - %m%n 13 | 14 | # Configuration for a rolling log file ("tomcat.log") 15 | #log4j.appender.Sakai=org.apache.log4j.DailyRollingFileAppender 16 | #log4j.appender.Sakai.DatePattern='.'yyyy-MM-dd 17 | #log4j.appender.Sakai.File=/usr/local/tomcat/logs/tomcat.log 18 | #log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 19 | #log4j.appender.Sakai.layout.ConversionPattern=%p %d %t_%c%n%m%n 20 | 21 | #Set the encoding on the appender KNL-448 22 | log4j.appender.Sakai.Encoding=UTF-8 23 | 24 | # Application logging options 25 | log4j.logger.org.apache=INFO 26 | log4j.logger.org.sakaiproject=INFO 27 | log4j.logger.uk.ac.cam.caret.rwiki=INFO 28 | log4j.logger.org.theospi=INFO 29 | log4j.logger.MySQL=INFO 30 | log4j.logger.org.springframework=DEBUG 31 | log4j.logger.cn.edu.hbcf=DEBUG 32 | log4j.logger.com.yunzai=DEBUG 33 | 34 | # Ignore erroneous MyFaces warnings 35 | log4j.logger.org.apache.myfaces.el.VariableResolverImpl=ERROR 36 | log4j.logger.org.apache.myfaces.shared_impl.webapp.webxml.WebXmlParser=ERROR 37 | log4j.logger.org.apache.myfaces.shared_tomahawk.webapp.webxml.WebXmlParser=ERROR 38 | 39 | 40 | # Setup vm levels 41 | log4j.logger.vm.none=FATAL 42 | log4j.logger.vm.error=ERROR 43 | log4j.logger.vm.warn=WARN 44 | log4j.logger.vm.info=INFO 45 | log4j.logger.vm.debug=DEBUG 46 | 47 | 48 | log4j.logger.com.ibatis=DEBUG 49 | log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 50 | log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 51 | log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 52 | log4j.logger.java.sql.Connection=DEBUG 53 | log4j.logger.java.sql.Statement=DEBUG 54 | log4j.logger.java.sql.PreparedStatement=DEBUG 55 | log4j.logger.java.sql.ResultSet=DEBUG 56 | log4j.logger.org.apache.ibatis.io=DEBUG -------------------------------------------------------------------------------- /src/main/resources/mapping/BooksMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | SELECT * FROM t_book 18 | WHERE book_person=#{borrow_person} 19 | 20 | 21 | 22 | SELECT * FROM t_book 23 | WHERE book_name LIKE CONCAT('%', #{bookName}, '%') 24 | 25 | 26 | 27 | 28 | SELECT * FROM t_book WHERE book_writer like CONCAT('%', #{bookWriter}, '%') 29 | 30 | 31 | 32 | SELECT * FROM t_book 33 | WHERE id = #{id} 34 | 35 | 36 | 37 | SELECT * FROM t_book 38 | 39 | 40 | 41 | 42 | update t_book set book_isrent=1,book_person=#{borrow_person} WHERE id=#{id} 43 | 44 | 45 | 46 | update t_book set book_isrent=0,book_person='' WHERE id=#{id} 47 | 48 | 49 | 50 | 51 | insert into t_book (book_name,book_writer,book_publisher,book_isrent) values 52 | (#{bookName},#{bookWriter},#{Publisher},#{isrent}) 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/main/resources/mapping/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | SELECT * FROM t_user 15 | WHERE id = #{Id} 16 | 17 | 18 | 19 | 20 | SELECT * FROM t_user WHERE user_name=#{userName} 21 | 22 | 23 | 24 | 25 | SELECT * FROM t_user 26 | 27 | 28 | 29 | update t_user set user_pwd=#{userPwd} WHERE user_name=#{userName} 30 | 31 | 32 | 33 | 34 | 35 | insert into t_user (user_name,user_email,user_pwd) values 36 | (#{userName},#{userEmail},#{userPwd}) 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/main/resources/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | text/plain;charset=UTF-8 26 | text/html;charset=UTF-8 27 | application/json;charset=UTF-8 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/main/resources/spring-mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/main/webapp/Mybook.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 我的借阅 16 | 17 | 18 | 19 | 20 | 21 | 22 | 图书管理系统 23 | 24 | 25 | 26 | 27 | 28 | 返回主页 29 | 30 | 31 | 49 | 50 | 51 | 修改密码 52 | 借阅记录 53 | 登出 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 书名作者出版社借阅状态 68 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /src/main/webapp/UpdatePwd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 修改密码 7 | 8 | 9 | 10 | 11 | 密码修改 12 | 13 | 14 | 15 | 新密码: 16 | 17 | 18 | 19 | 确认新密码: 20 | 21 | 22 | 23 | 24 | 提交 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | web-ssm 9 | 10 | 11 | /index.html 12 | 13 | 14 | 15 | 16 | contextConfigLocation 17 | classpath:spring-mybatis.xml 18 | 19 | 20 | 21 | log4jConfigLocation 22 | classpath:log4j.properties 23 | 24 | 25 | 26 | 27 | 28 | 29 | CharacterEncodingFilter 30 | 31 | org.springframework.web.filter.CharacterEncodingFilter 32 | 33 | 34 | 35 | encoding 36 | 37 | UTF-8 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | CharacterEncodingFilter 46 | 47 | /* 48 | 49 | 50 | 51 | 52 | 53 | org.springframework.web.context.ContextLoaderListener 54 | 55 | 56 | 57 | 58 | org.springframework.web.util.IntrospectorCleanupListener 59 | 60 | 61 | 62 | 63 | 64 | SpringMVC 65 | org.springframework.web.servlet.DispatcherServlet 66 | 67 | contextConfigLocation 68 | classpath:spring-mvc.xml 69 | 70 | 1 71 | true 72 | 73 | 74 | SpringMVC 75 | 76 | /* 77 | 78 | 79 | 80 | 81 | 82 | 15 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/main/webapp/css/reset.css: -------------------------------------------------------------------------------- 1 | body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0} 2 | table{border-collapse:collapse;border-spacing:0} 3 | fieldset,img{border:0} 4 | address,caption,cite,code,dfn,th,var{font-style:normal;font-weight:normal} 5 | ol,ul{list-style:none} 6 | caption,th{text-align:left} 7 | h1,h2,h3,h4,h5,h6{font-size:100%;font-style:normal;font-weight:normal} 8 | q:before,q:after{content:''} 9 | body{font:13px arial,helvetica,clean,sans-serif;font-size:small;} 10 | select,input,textarea{font:99% arial,helvetica,clean,sans-serif} 11 | pre,code{font:115% monospace;font-size:100%} 12 | body * {line-height:1.22em} 13 | body { 14 | color: #202020; 15 | } 16 | 17 | h1 { 18 | color: #fff; 19 | background: #06b; 20 | padding: 10px; 21 | font-size: 200%; 22 | } 23 | 24 | h2 { 25 | color: #000; 26 | font-size: 150%; 27 | padding: 10px 0; 28 | } 29 | 30 | h3 { 31 | color: #000; 32 | font-size: 120%; 33 | padding: 10px 0; 34 | } 35 | 36 | ul { 37 | list-style: disc inside; 38 | margin-left: 1em; 39 | } 40 | label { 41 | float: left; 42 | width: 12em; 43 | } 44 | input[type=text] { width: 15em; } -------------------------------------------------------------------------------- /src/main/webapp/css/styles.css: -------------------------------------------------------------------------------- 1 | body{ 2 | margin:0; 3 | color:#6a6f8c; 4 | background:#c8c8c8; 5 | font:600 16px/18px 'Open Sans',sans-serif; 6 | } 7 | *,:after,:before{box-sizing:border-box} 8 | .clearfix:after,.clearfix:before{content:'';display:table} 9 | .clearfix:after{clear:both;display:block} 10 | a{color:inherit;text-decoration:none;} 11 | input, button { 12 | outline: none; 13 | border: none; 14 | } 15 | .login-wrap{ 16 | width:100%; 17 | margin:auto; 18 | max-width:525px; 19 | min-height:670px; 20 | position:relative; 21 | background:url(../img/bg.jpg) no-repeat center; 22 | box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19); 23 | } 24 | .login-html{ 25 | width:100%; 26 | height:100%; 27 | position:absolute; 28 | padding:90px 70px 50px 70px; 29 | background:rgba(40,57,101,.9); 30 | } 31 | .login-html .sign-in-htm, 32 | .login-html .sign-up-htm{ 33 | top:0; 34 | left:0; 35 | right:0; 36 | bottom:0; 37 | position:absolute; 38 | -webkit-transform:rotateY(180deg); 39 | transform:rotateY(180deg); 40 | -webkit-backface-visibility:hidden; 41 | backface-visibility:hidden; 42 | -webkit-transition:all .4s linear; 43 | transition:all .4s linear; 44 | } 45 | .login-html .sign-in, 46 | .login-html .sign-up, 47 | .login-form .group .check{ 48 | display:none; 49 | } 50 | .login-html .tab, 51 | .login-form .group .label, 52 | .login-form .group .button{ 53 | text-transform:uppercase; 54 | } 55 | .login-html .tab{ 56 | font-size:22px; 57 | margin-right:15px; 58 | padding-bottom:5px; 59 | margin:0 15px 10px 0; 60 | display:inline-block; 61 | border-bottom:2px solid transparent; 62 | } 63 | .login-html .sign-in:checked + .tab, 64 | .login-html .sign-up:checked + .tab{ 65 | color:#fff; 66 | border-color:#1161ee; 67 | } 68 | .login-form{ 69 | min-height:345px; 70 | position:relative; 71 | -webkit-perspective:1000px; 72 | perspective:1000px; 73 | -webkit-transform-style:preserve-3d; 74 | transform-style:preserve-3d; 75 | } 76 | .login-form .group{ 77 | margin-bottom:15px; 78 | } 79 | .login-form .group .label, 80 | .login-form .group .input, 81 | .login-form .group .button{ 82 | width:100%; 83 | color:#fff; 84 | display:block; 85 | } 86 | .login-form .group .input, 87 | .login-form .group .button{ 88 | border:none; 89 | padding:15px 20px; 90 | border-radius:25px; 91 | background:rgba(255,255,255,.1); 92 | } 93 | .login-form .group input[data-type="password"]{ 94 | text-security:circle; 95 | -webkit-text-security:circle; 96 | } 97 | .login-form .group .label{ 98 | color:#aaa; 99 | font-size:12px; 100 | } 101 | .login-form .group .button{ 102 | background:#1161ee; 103 | } 104 | .login-form .group label .icon{ 105 | width:15px; 106 | height:15px; 107 | border-radius:2px; 108 | position:relative; 109 | display:inline-block; 110 | background:rgba(255,255,255,.1); 111 | } 112 | .login-form .group label .icon:before, 113 | .login-form .group label .icon:after{ 114 | content:''; 115 | width:10px; 116 | height:2px; 117 | background:#fff; 118 | position:absolute; 119 | -webkit-transition:all .2s ease-in-out 0s; 120 | transition:all .2s ease-in-out 0s; 121 | } 122 | .login-form .group label .icon:before{ 123 | left:3px; 124 | width:5px; 125 | bottom:6px; 126 | -webkit-transform:scale(0) rotate(0); 127 | -ms-transform:scale(0) rotate(0); 128 | transform:scale(0) rotate(0); 129 | } 130 | .login-form .group label .icon:after{ 131 | top:6px; 132 | right:0; 133 | -webkit-transform:scale(0) rotate(0); 134 | -ms-transform:scale(0) rotate(0); 135 | transform:scale(0) rotate(0); 136 | } 137 | .login-form .group .check:checked + label{ 138 | color:#fff; 139 | } 140 | .login-form .group .check:checked + label .icon{ 141 | background:#1161ee; 142 | } 143 | .login-form .group .check:checked + label .icon:before{ 144 | -webkit-transform:scale(1) rotate(45deg); 145 | -ms-transform:scale(1) rotate(45deg); 146 | transform:scale(1) rotate(45deg); 147 | } 148 | .login-form .group .check:checked + label .icon:after{ 149 | -webkit-transform:scale(1) rotate(-45deg); 150 | -ms-transform:scale(1) rotate(-45deg); 151 | transform:scale(1) rotate(-45deg); 152 | } 153 | .login-html .sign-in:checked + .tab + .sign-up + .tab + .login-form .sign-in-htm{ 154 | -webkit-transform:rotate(0); 155 | -ms-transform:rotate(0); 156 | transform:rotate(0); 157 | } 158 | .login-html .sign-up:checked + .tab + .login-form .sign-up-htm{ 159 | -webkit-transform:rotate(0); 160 | -ms-transform:rotate(0); 161 | transform:rotate(0); 162 | } 163 | 164 | .hr{ 165 | height:2px; 166 | margin:60px 0 50px 0; 167 | background:rgba(255,255,255,.2); 168 | } 169 | .foot-lnk{ 170 | text-align:center; 171 | } -------------------------------------------------------------------------------- /src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 图书管理系统 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | Sign In 20 | Sign Up 21 | 22 | 23 | 24 | Username 25 | 26 | 27 | 28 | Password 29 | 30 | 31 | 32 | 33 | Keep me Signed in 34 | 35 | 36 | 37 | 38 | 39 | 40 | Forgot Password? 41 | 42 | 43 | 44 | 45 | Username 46 | 47 | 48 | 49 | Password 50 | 51 | 52 | 53 | Repeat Password 54 | 55 | 56 | 57 | Email Address 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | Already Member? 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/main/webapp/indexpage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 整体架构 16 | 17 | 18 | 19 | 20 | 21 | 22 | 图书管理系统 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 49 | 50 | 51 | 修改密码 52 | 借阅记录 53 | 登出 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Search 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 书名作者出版社借阅状态 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /src/main/webapp/js/jq.validate.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | //拦截form,在form提交前进行验证 3 | $('form').bind('submit',beforeSubmit); 4 | 5 | //为带有valType属性的元素初始化提示信息并注册onblur事件 6 | $.each($("[valType]"),function(i, n) { 7 | $(n).poshytip({ 8 | className: 'tip-yellowsimple', 9 | content: $(n).attr('msg'), 10 | showOn: 'none', 11 | alignTo: 'target', 12 | alignX: 'right', 13 | alignY: 'center', 14 | offsetX: 5, 15 | offsetY: 10 16 | }); 17 | $(n).bind('blur',validateBefore); 18 | }); 19 | 20 | //定义一个验证器 21 | $.Validator=function(para) { 22 | 23 | 24 | } 25 | 26 | $.Validator.ajaxValidate=function() { 27 | beforeSubmit(); 28 | } 29 | 30 | //验证的方法 31 | $.Validator.match=function(para) { 32 | //定义默认的验证规则 33 | var defaultVal = { 34 | NUMBER : "^[0-9]*$", 35 | TEL : "^0(10|2[0-5789]|\\d{3})-\\d{7,8}$", 36 | IP : "^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$", 37 | MOBILE : "^1(3[0-9]|5[0-35-9]|8[0235-9])\\d{8}$", 38 | MAIL : "^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$", 39 | IDENTITY : "((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})((((19|20)(([02468][048])|([13579][26]))0229))|((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))((\\d{3}(x|X))|(\\d{4}))", 40 | CHINESE : "^([\u4E00-\uFA29]|[\uE7C7-\uE7F3])*$", 41 | URL : "^http[s]?://[\\w\\.\\-]+$" 42 | }; 43 | var flag=false; 44 | if(para.rule=='OTHER') {//自定义的验证规则匹配 45 | flag=new RegExp(para.regString).test(para.data); 46 | } 47 | else { 48 | if(para.rule in defaultVal) {//默认的验证规则匹配 49 | flag=new RegExp(defaultVal[para.rule]).test(para.data); 50 | } 51 | } 52 | 53 | return flag; 54 | } 55 | 56 | 57 | 58 | //为jquery扩展一个doValidate方法,对所有带有valType的元素进行表单验证,可用于ajax提交前自动对表单进行验证 59 | $.extend({ 60 | doValidate: function() { 61 | return $.Validator.ajaxValidate(); 62 | } 63 | }); 64 | 65 | }); 66 | 67 | //输入框焦点离开后对文本框的内容进行格式验证 68 | function validateBefore() { 69 | //验证通过标识 70 | var flag=true; 71 | //获取验证类型 72 | var valType=$(this).attr('valType'); 73 | //获取验证不通过时的提示信息 74 | var msg=$(this).attr('msg'); 75 | //自定义的验证字符串 76 | var regString; 77 | 78 | if(valType=='OTHER') {//如果类型是自定义,则获取自定义的验证字符串 79 | regString=$(this).attr('regString'); 80 | flag=$(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType'), regString:$(this).attr('regString')}); 81 | } 82 | else {//如果类型不是自定义,则匹配默认的验证规则进行验证 83 | if($(this).attr('valType')=='required') {//不能为空的判断 84 | if($(this).val()=='') { 85 | flag=false; 86 | } 87 | } 88 | else {//已定义规则的判断 89 | flag=$(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType')}); 90 | } 91 | } 92 | //先清除原来的tips 93 | $(this).poshytip('hide'); 94 | //如果验证没有通过,显示tips 95 | if(!flag) { 96 | $(this).poshytip('show'); 97 | } 98 | 99 | } 100 | 101 | //submit之前对所有表单进行验证 102 | function beforeSubmit() { 103 | var flag=true; 104 | //alert($("[valType]").length); 105 | $.each($("[valType]"),function(i, n) { 106 | //清除可能已有的提示信息 107 | $(n).poshytip('hide'); 108 | 109 | if($(n).attr("valType")=='required') {//对不能为空的文本框进行验证 110 | if($(n).val()=='') { 111 | //显示tips 112 | $(n).poshytip('show'); 113 | flag=false; 114 | } 115 | } 116 | else if($(n).attr("valType")=='OTHER') {//对自定义的文本框进行验证 117 | if(!($(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType'), regString:$(this).attr('regString')}))) { 118 | $(n).poshytip('show'); 119 | flag=false; 120 | } 121 | } 122 | else {//对使用已定义规则的文本框进行验证 123 | if(!($(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType')}))) { 124 | $(n).poshytip('show'); 125 | flag=false; 126 | } 127 | } 128 | }); 129 | return flag; 130 | } 131 | 132 | 133 | //下面是测试代码,不属于验证器的功能代码之内 134 | //用原型的方式来模拟js的类 135 | function Validators() { 136 | 137 | } 138 | 139 | Validators.prototype.subByJs=function(e) { 140 | if($.doValidate()) { 141 | alert('验证通过'); 142 | //todo 143 | } 144 | } 145 | /*www.jq22.com*/ -------------------------------------------------------------------------------- /src/main/webapp/js/loginJS.js: -------------------------------------------------------------------------------- 1 | 2 | function c_o_li_data() { 3 | var user = document.getElementById('username'); 4 | var password = document.getElementById('password'); 5 | var checkor = document.getElementById("check"); 6 | var data = {}; 7 | data["username"] = user.value; 8 | data["password"] = password.value; 9 | if(!checkor.checked){ 10 | user.text(""); 11 | password.text(""); 12 | } 13 | return data; 14 | } 15 | function c_o_li_submit() { 16 | var data = c_o_li_data(); 17 | 18 | $.ajax({ 19 | url: "login", 20 | type: "POST", 21 | //contex: , 22 | data: data, 23 | dataType: "JSON", 24 | success: function(response) { 25 | if (response === true) { 26 | setTimeout('window.location.href="indexpage.html"',1000); 27 | 28 | 29 | } else { 30 | alert("账号或密码错误"); 31 | } 32 | // setTimeout('window.location.href="index.html"', 1000); 33 | }, 34 | error: function(xhr, msg, e) { 35 | alert("error!"); 36 | } 37 | }); 38 | } 39 | 40 | function register_data() { 41 | var username = document.getElementById("user"); 42 | var pass=document.getElementById("pass"); 43 | var passconfirm=document.getElementById("passconfirm"); 44 | if(pass.value!=passconfirm.value) {alert("两次密码不一样!"); return ;} 45 | var email=document.getElementById("email"); 46 | 47 | var data = {}; 48 | data["username"] = user.value; 49 | data["password"] = pass.value; 50 | data["email"] = email.value; 51 | return data; 52 | } 53 | 54 | function register_submit() { 55 | var data = register_data(); 56 | $.ajax({ 57 | url: "register", 58 | type: "POST", 59 | //contex: , 60 | data: data, 61 | dataType: "JSON", 62 | success: function(response) { 63 | if (response === true) { 64 | alert("注册成功!") 65 | } else { 66 | alert("账号已存在"); 67 | } 68 | // setTimeout('window.location.href="index.html"', 3000); 69 | }, 70 | error: function(xhr, msg, e) { 71 | alert("error!"); 72 | } 73 | }); 74 | } 75 | 76 | function logout() { 77 | $.ajax({ 78 | url: "logout", 79 | type: "GET", 80 | dataType: "JSON", 81 | success: function(response) { 82 | if (response === true) { 83 | setTimeout('window.location.href="index.html"', 1000); 84 | } else { 85 | alert("登出失败!"); 86 | } 87 | // setTimeout('window.location.href="index.html"', 3000); 88 | }, 89 | error: function(xhr, msg, e) { 90 | alert("error!"); 91 | } 92 | }); 93 | } 94 | 95 | function online() { 96 | $.ajax({ 97 | url: "online", 98 | type: "GET", 99 | success: function(response) { 100 | if(response!=null) { 101 | $("#UserID").innerHTML(response.toString() 102 | + ''); 103 | } 104 | }, 105 | error: function(xhr, msg, e) { 106 | alert("error!"); 107 | } 108 | }); 109 | } 110 | function updatePass() { 111 | var pass1 = document.getElementById("pass1"); 112 | var pass2 = document.getElementById("pass2"); 113 | if (pass1.value !== pass2.value) { 114 | alert("两次密码输入不一致!") 115 | pass1.text(""); 116 | pass2.text(""); 117 | } 118 | else { 119 | var data = {}; 120 | data["password"] = pass2.value; 121 | $.ajax({ 122 | url: "updatepass", 123 | type: "POST", 124 | data: data, 125 | dataType: "JSON", 126 | success: function (response) { 127 | if (response === true) { 128 | alert("密码修改成功!"); 129 | setTimeout('window.location.href="index.html"'); 130 | } 131 | } 132 | }); 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /src/main/webapp/js/searchJS.js: -------------------------------------------------------------------------------- 1 | 2 | function search(){ 3 | var book_name = document.getElementById("searchTxt"); 4 | data={}; 5 | data["bookName"]=book_name.value; 6 | $.ajax({ 7 | url: "search", 8 | type: "POST", 9 | //contex: , 10 | data: data, 11 | dataType: "JSON", 12 | success: function(response) { 13 | console.log(response); 14 | $("#postTable").html("书名作者出版社借阅状态一键借阅"); 15 | $.each(response, function(i, item) { 16 | var isrent; 17 | if(item.isrent==0) { 18 | isrent = "在架上"; 19 | $("#postTable").append( 20 | ''+item.bookName+''+item.bookWriter+''+item.Publisher+''+isrent+'借阅'); 21 | } 22 | else { 23 | isrent = "已借出"; 24 | $("#postTable").append( 25 | '' + item.bookName + '' + item.bookWriter + '' + item.Publisher + '' + isrent + '借阅' 26 | ); 27 | } 28 | }); 29 | 30 | }, 31 | error: function(xhr, msg, e) { 32 | alert("error!"); 33 | } 34 | }); 35 | } 36 | 37 | 38 | function borrowBook(obj){ 39 | var data={}; 40 | data["id"]=obj.id.toString(); 41 | if(confirm("请确定是否借阅这本书?")){ 42 | $.ajax({ 43 | url:"borrowBook", 44 | type: "POST", 45 | data:data, 46 | dataType:"JSON", 47 | success: function (response) { 48 | if(response === true) 49 | setTimeout('window.location.href="Mybook.html"'); 50 | }, 51 | error: function(xhr, msg, e) { 52 | console.log(e); 53 | } 54 | 55 | }); 56 | 57 | 58 | alert("成功借阅!即日送达!") 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/controller/BookController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/controller/BookController.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/controller/UserController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/controller/UserController.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/dao/BookDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/dao/BookDao.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/dao/UserDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/dao/UserDao.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/model/Book.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/model/Book.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/model/User.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/model/User.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/service/BookService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/service/BookService.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/service/UserService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/service/UserService.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/service/impl/BookServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/service/impl/BookServiceImpl.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/service/impl/UserServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/service/impl/UserServiceImpl.class -------------------------------------------------------------------------------- /target/classes/com/ly/ssm/utils/Md5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/classes/com/ly/ssm/utils/Md5.class -------------------------------------------------------------------------------- /target/classes/common.properties: -------------------------------------------------------------------------------- 1 | driverClasss=com.mysql.jdbc.Driver 2 | jdbcUrl=jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 3 | username=root 4 | password=root 5 | 6 | #�����ʼ������ 7 | initialSize=0 8 | #������������� 9 | maxActive=20 10 | #���������� 11 | maxIdle=20 12 | #������С���� 13 | minIdle=1 14 | #������ȴ�ʱ�� 15 | maxWait=60000 16 | -------------------------------------------------------------------------------- /target/classes/jdbc.properties: -------------------------------------------------------------------------------- 1 | driverClasss=com.mysql.jdbc.Driver 2 | jdbcUrl=jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 3 | username=root 4 | password=SY101051 5 | 6 | #�����ʼ������ 7 | initialSize=0 8 | #������������� 9 | maxActive=20 10 | #���������� 11 | maxIdle=20 12 | #������С���� 13 | minIdle=1 14 | #������ȴ�ʱ�� 15 | maxWait=60000 16 | -------------------------------------------------------------------------------- /target/classes/log4j.properties: -------------------------------------------------------------------------------- 1 | # Configures Log4j for Tomcat and Sakai 2 | 3 | # use "A" for log in with catalina.out (actually standard output) 4 | log4j.rootLogger=WARN, Sakai 5 | 6 | # Configuration for standard output ("catalina.out" in Tomcat). 7 | log4j.appender.Sakai=org.apache.log4j.ConsoleAppender 8 | log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 9 | #log4j.appender.Sakai.layout.ConversionPattern=%p: %m (%d %t_%c)%n 10 | 11 | # A more descriptive but lower performance logging pattern 12 | log4j.appender.Sakai.layout.ConversionPattern=%d{ISO8601} %5p %t %c - %m%n 13 | 14 | # Configuration for a rolling log file ("tomcat.log") 15 | #log4j.appender.Sakai=org.apache.log4j.DailyRollingFileAppender 16 | #log4j.appender.Sakai.DatePattern='.'yyyy-MM-dd 17 | #log4j.appender.Sakai.File=/usr/local/tomcat/logs/tomcat.log 18 | #log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 19 | #log4j.appender.Sakai.layout.ConversionPattern=%p %d %t_%c%n%m%n 20 | 21 | #Set the encoding on the appender KNL-448 22 | log4j.appender.Sakai.Encoding=UTF-8 23 | 24 | # Application logging options 25 | log4j.logger.org.apache=INFO 26 | log4j.logger.org.sakaiproject=INFO 27 | log4j.logger.uk.ac.cam.caret.rwiki=INFO 28 | log4j.logger.org.theospi=INFO 29 | log4j.logger.MySQL=INFO 30 | log4j.logger.org.springframework=DEBUG 31 | log4j.logger.cn.edu.hbcf=DEBUG 32 | log4j.logger.com.yunzai=DEBUG 33 | 34 | # Ignore erroneous MyFaces warnings 35 | log4j.logger.org.apache.myfaces.el.VariableResolverImpl=ERROR 36 | log4j.logger.org.apache.myfaces.shared_impl.webapp.webxml.WebXmlParser=ERROR 37 | log4j.logger.org.apache.myfaces.shared_tomahawk.webapp.webxml.WebXmlParser=ERROR 38 | 39 | 40 | # Setup vm levels 41 | log4j.logger.vm.none=FATAL 42 | log4j.logger.vm.error=ERROR 43 | log4j.logger.vm.warn=WARN 44 | log4j.logger.vm.info=INFO 45 | log4j.logger.vm.debug=DEBUG 46 | 47 | 48 | log4j.logger.com.ibatis=DEBUG 49 | log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 50 | log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 51 | log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 52 | log4j.logger.java.sql.Connection=DEBUG 53 | log4j.logger.java.sql.Statement=DEBUG 54 | log4j.logger.java.sql.PreparedStatement=DEBUG 55 | log4j.logger.java.sql.ResultSet=DEBUG 56 | log4j.logger.org.apache.ibatis.io=DEBUG -------------------------------------------------------------------------------- /target/classes/mapping/BooksMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | SELECT * FROM t_book 18 | WHERE book_person=#{borrow_person} 19 | 20 | 21 | 22 | SELECT * FROM t_book 23 | WHERE book_name LIKE CONCAT('%', #{bookName}, '%') 24 | 25 | 26 | 27 | 28 | SELECT * FROM t_book WHERE book_writer like CONCAT('%', #{bookWriter}, '%') 29 | 30 | 31 | 32 | SELECT * FROM t_book 33 | WHERE id = #{id} 34 | 35 | 36 | 37 | SELECT * FROM t_book 38 | 39 | 40 | 41 | 42 | update t_book set book_isrent=1,book_person=#{borrow_person} WHERE id=#{id} 43 | 44 | 45 | 46 | update t_book set book_isrent=0,book_person='' WHERE id=#{id} 47 | 48 | 49 | 50 | 51 | insert into t_book (book_name,book_writer,book_publisher,book_isrent) values 52 | (#{bookName},#{bookWriter},#{Publisher},#{isrent}) 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /target/classes/mapping/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | SELECT * FROM t_user 15 | WHERE id = #{Id} 16 | 17 | 18 | 19 | 20 | SELECT * FROM t_user WHERE user_name=#{userName} 21 | 22 | 23 | 24 | 25 | SELECT * FROM t_user 26 | 27 | 28 | 29 | update t_user set user_pwd=#{userPwd} WHERE user_name=#{userName} 30 | 31 | 32 | 33 | 34 | 35 | insert into t_user (user_name,user_email,user_pwd) values 36 | (#{userName},#{userEmail},#{userPwd}) 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /target/classes/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | text/plain;charset=UTF-8 26 | text/html;charset=UTF-8 27 | application/json;charset=UTF-8 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /target/classes/spring-mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /target/maven-archiver/pom.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven 2 | #Tue Mar 21 16:16:35 GMT+08:00 2017 3 | version=1.0-SNAPSHOT 4 | groupId=com.heitian.web 5 | artifactId=web-ssm 6 | -------------------------------------------------------------------------------- /target/web-ssm.war: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm.war -------------------------------------------------------------------------------- /target/web-ssm/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Built-By: sd 3 | Created-By: IntelliJ IDEA 4 | Build-Jdk: 1.8.0_151 5 | 6 | -------------------------------------------------------------------------------- /target/web-ssm/Mybook.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 我的借阅 16 | 17 | 18 | 19 | 20 | 21 | 22 | 图书管理系统 23 | 24 | 25 | 26 | 27 | 28 | 返回主页 29 | 30 | 31 | 49 | 50 | 51 | 修改密码 52 | 借阅记录 53 | 登出 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 书名作者出版社借阅状态 68 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /target/web-ssm/UpdatePwd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 修改密码 7 | 8 | 9 | 10 | 11 | 密码修改 12 | 13 | 14 | 15 | 新密码: 16 | 17 | 18 | 19 | 确认新密码: 20 | 21 | 22 | 23 | 24 | 提交 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/SQL/t_user.sql: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by ly on 2017/11/30. 3 | */ 4 | 5 | SET FOREIGN_KEY_CHECKS=0; 6 | 7 | -- ---------------------------- 8 | -- Table structure for `t_user` 9 | -- ---------------------------- 10 | DROP TABLE IF EXISTS `t_user`; 11 | CREATE TABLE `t_user` ( 12 | `id` bigint(11) NOT NULL auto_increment, 13 | `user_name` varchar(255) default NULL COMMENT '用户名', 14 | `user_phone` varchar(20) default NULL COMMENT '手机号', 15 | `user_email` varchar(255) default NULL COMMENT '邮箱地址', 16 | `user_pwd` varchar(32) default NULL COMMENT '加盐后用户密码', 17 | `pwd_salt` varchar(6) default NULL COMMENT 'MD5盐', 18 | `create_time` datetime default NULL COMMENT '创建时间', 19 | `modify_time` datetime default NULL COMMENT '最后修改时间', 20 | `is_delete` tinyint(4) default NULL COMMENT '是否删除,0-未删除;1-已删除', 21 | PRIMARY KEY (`id`) 22 | ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户登录表'; 23 | 24 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/controller/BookController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/controller/BookController.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/controller/UserController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/controller/UserController.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/dao/BookDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/dao/BookDao.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/dao/UserDao.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/dao/UserDao.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/model/Book.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/model/Book.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/model/User.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/model/User.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/service/BookService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/service/BookService.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/service/UserService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/service/UserService.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/service/impl/BookServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/service/impl/BookServiceImpl.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/service/impl/UserServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/service/impl/UserServiceImpl.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/com/ly/ssm/utils/Md5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/classes/com/ly/ssm/utils/Md5.class -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/common.properties: -------------------------------------------------------------------------------- 1 | driverClasss=com.mysql.jdbc.Driver 2 | jdbcUrl=jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 3 | username=root 4 | password=root 5 | 6 | #�����ʼ������ 7 | initialSize=0 8 | #������������� 9 | maxActive=20 10 | #���������� 11 | maxIdle=20 12 | #������С���� 13 | minIdle=1 14 | #������ȴ�ʱ�� 15 | maxWait=60000 16 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/jdbc.properties: -------------------------------------------------------------------------------- 1 | driverClasss=com.mysql.jdbc.Driver 2 | jdbcUrl=jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 3 | username=root 4 | password=SY101051 5 | 6 | #�����ʼ������ 7 | initialSize=0 8 | #������������� 9 | maxActive=20 10 | #���������� 11 | maxIdle=20 12 | #������С���� 13 | minIdle=1 14 | #������ȴ�ʱ�� 15 | maxWait=60000 16 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/log4j.properties: -------------------------------------------------------------------------------- 1 | # Configures Log4j for Tomcat and Sakai 2 | 3 | # use "A" for log in with catalina.out (actually standard output) 4 | log4j.rootLogger=WARN, Sakai 5 | 6 | # Configuration for standard output ("catalina.out" in Tomcat). 7 | log4j.appender.Sakai=org.apache.log4j.ConsoleAppender 8 | log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 9 | #log4j.appender.Sakai.layout.ConversionPattern=%p: %m (%d %t_%c)%n 10 | 11 | # A more descriptive but lower performance logging pattern 12 | log4j.appender.Sakai.layout.ConversionPattern=%d{ISO8601} %5p %t %c - %m%n 13 | 14 | # Configuration for a rolling log file ("tomcat.log") 15 | #log4j.appender.Sakai=org.apache.log4j.DailyRollingFileAppender 16 | #log4j.appender.Sakai.DatePattern='.'yyyy-MM-dd 17 | #log4j.appender.Sakai.File=/usr/local/tomcat/logs/tomcat.log 18 | #log4j.appender.Sakai.layout=org.apache.log4j.PatternLayout 19 | #log4j.appender.Sakai.layout.ConversionPattern=%p %d %t_%c%n%m%n 20 | 21 | #Set the encoding on the appender KNL-448 22 | log4j.appender.Sakai.Encoding=UTF-8 23 | 24 | # Application logging options 25 | log4j.logger.org.apache=INFO 26 | log4j.logger.org.sakaiproject=INFO 27 | log4j.logger.uk.ac.cam.caret.rwiki=INFO 28 | log4j.logger.org.theospi=INFO 29 | log4j.logger.MySQL=INFO 30 | log4j.logger.org.springframework=DEBUG 31 | log4j.logger.cn.edu.hbcf=DEBUG 32 | log4j.logger.com.yunzai=DEBUG 33 | 34 | # Ignore erroneous MyFaces warnings 35 | log4j.logger.org.apache.myfaces.el.VariableResolverImpl=ERROR 36 | log4j.logger.org.apache.myfaces.shared_impl.webapp.webxml.WebXmlParser=ERROR 37 | log4j.logger.org.apache.myfaces.shared_tomahawk.webapp.webxml.WebXmlParser=ERROR 38 | 39 | 40 | # Setup vm levels 41 | log4j.logger.vm.none=FATAL 42 | log4j.logger.vm.error=ERROR 43 | log4j.logger.vm.warn=WARN 44 | log4j.logger.vm.info=INFO 45 | log4j.logger.vm.debug=DEBUG 46 | 47 | 48 | log4j.logger.com.ibatis=DEBUG 49 | log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 50 | log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 51 | log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 52 | log4j.logger.java.sql.Connection=DEBUG 53 | log4j.logger.java.sql.Statement=DEBUG 54 | log4j.logger.java.sql.PreparedStatement=DEBUG 55 | log4j.logger.java.sql.ResultSet=DEBUG 56 | log4j.logger.org.apache.ibatis.io=DEBUG -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/mapping/BooksMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | SELECT * FROM t_book 18 | WHERE book_person=#{borrow_person} 19 | 20 | 21 | 22 | SELECT * FROM t_book 23 | WHERE book_name LIKE CONCAT('%', #{bookName}, '%') 24 | 25 | 26 | 27 | 28 | SELECT * FROM t_book WHERE book_writer like CONCAT('%', #{bookWriter}, '%') 29 | 30 | 31 | 32 | SELECT * FROM t_book 33 | WHERE id = #{id} 34 | 35 | 36 | 37 | SELECT * FROM t_book 38 | 39 | 40 | 41 | 42 | update t_book set book_isrent=1,book_person=#{borrow_person} WHERE id=#{id} 43 | 44 | 45 | 46 | update t_book set book_isrent=0,book_person='' WHERE id=#{id} 47 | 48 | 49 | 50 | 51 | insert into t_book (book_name,book_writer,book_publisher,book_isrent) values 52 | (#{bookName},#{bookWriter},#{Publisher},#{isrent}) 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/mapping/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | SELECT * FROM t_user 15 | WHERE id = #{Id} 16 | 17 | 18 | 19 | 20 | SELECT * FROM t_user WHERE user_name=#{userName} 21 | 22 | 23 | 24 | 25 | SELECT * FROM t_user 26 | 27 | 28 | 29 | update t_user set user_pwd=#{userPwd} WHERE user_name=#{userName} 30 | 31 | 32 | 33 | 34 | 35 | insert into t_user (user_name,user_email,user_pwd) values 36 | (#{userName},#{userEmail},#{userPwd}) 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | text/plain;charset=UTF-8 26 | text/html;charset=UTF-8 27 | application/json;charset=UTF-8 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/classes/spring-mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/activation-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/activation-1.1.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/aopalliance-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/aopalliance-1.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-codec-1.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-codec-1.9.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-dbcp-1.2.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-dbcp-1.2.2.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-fileupload-1.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-fileupload-1.3.1.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-io-2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-io-2.4.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-logging-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-logging-1.2.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/commons-pool-1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/commons-pool-1.3.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/fastjson-1.1.41.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/fastjson-1.1.41.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jackson-annotations-2.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jackson-annotations-2.8.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jackson-core-2.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jackson-core-2.8.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jackson-core-asl-1.9.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jackson-core-asl-1.9.13.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jackson-databind-2.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jackson-databind-2.8.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jackson-mapper-asl-1.9.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jackson-mapper-asl-1.9.13.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/javaee-api-7.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/javaee-api-7.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/javax.mail-1.5.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/javax.mail-1.5.0.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/javax.servlet-api-3.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/javax.servlet-api-3.0.1.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/jstl-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/jstl-1.2.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/log4j-1.2.17.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/log4j-1.2.17.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/mybatis-3.2.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/mybatis-3.2.8.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/mybatis-spring-1.2.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/mybatis-spring-1.2.2.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/mysql-connector-java-5.1.29.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/mysql-connector-java-5.1.29.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/slf4j-api-1.7.18.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/slf4j-api-1.7.18.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/slf4j-log4j12-1.7.18.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/slf4j-log4j12-1.7.18.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-aop-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-aop-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-beans-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-beans-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-context-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-context-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-context-support-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-context-support-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-core-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-core-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-expression-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-expression-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-jdbc-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-jdbc-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-oxm-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-oxm-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-test-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-test-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-tx-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-tx-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-web-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-web-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/lib/spring-webmvc-4.2.5.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/WEB-INF/lib/spring-webmvc-4.2.5.RELEASE.jar -------------------------------------------------------------------------------- /target/web-ssm/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | web-ssm 9 | 10 | 11 | /index.html 12 | 13 | 14 | 15 | 16 | contextConfigLocation 17 | classpath:spring-mybatis.xml 18 | 19 | 20 | 21 | log4jConfigLocation 22 | classpath:log4j.properties 23 | 24 | 25 | 26 | 27 | 28 | 29 | CharacterEncodingFilter 30 | 31 | org.springframework.web.filter.CharacterEncodingFilter 32 | 33 | 34 | 35 | encoding 36 | 37 | UTF-8 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | CharacterEncodingFilter 46 | 47 | /* 48 | 49 | 50 | 51 | 52 | 53 | org.springframework.web.context.ContextLoaderListener 54 | 55 | 56 | 57 | 58 | org.springframework.web.util.IntrospectorCleanupListener 59 | 60 | 61 | 62 | 63 | 64 | SpringMVC 65 | org.springframework.web.servlet.DispatcherServlet 66 | 67 | contextConfigLocation 68 | classpath:spring-mvc.xml 69 | 70 | 1 71 | true 72 | 73 | 74 | SpringMVC 75 | 76 | /* 77 | 78 | 79 | 80 | 81 | 82 | 15 83 | 84 | 85 | -------------------------------------------------------------------------------- /target/web-ssm/css/reset.css: -------------------------------------------------------------------------------- 1 | body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0} 2 | table{border-collapse:collapse;border-spacing:0} 3 | fieldset,img{border:0} 4 | address,caption,cite,code,dfn,th,var{font-style:normal;font-weight:normal} 5 | ol,ul{list-style:none} 6 | caption,th{text-align:left} 7 | h1,h2,h3,h4,h5,h6{font-size:100%;font-style:normal;font-weight:normal} 8 | q:before,q:after{content:''} 9 | body{font:13px arial,helvetica,clean,sans-serif;font-size:small;} 10 | select,input,textarea{font:99% arial,helvetica,clean,sans-serif} 11 | pre,code{font:115% monospace;font-size:100%} 12 | body * {line-height:1.22em} 13 | body { 14 | color: #202020; 15 | } 16 | 17 | h1 { 18 | color: #fff; 19 | background: #06b; 20 | padding: 10px; 21 | font-size: 200%; 22 | } 23 | 24 | h2 { 25 | color: #000; 26 | font-size: 150%; 27 | padding: 10px 0; 28 | } 29 | 30 | h3 { 31 | color: #000; 32 | font-size: 120%; 33 | padding: 10px 0; 34 | } 35 | 36 | ul { 37 | list-style: disc inside; 38 | margin-left: 1em; 39 | } 40 | label { 41 | float: left; 42 | width: 12em; 43 | } 44 | input[type=text] { width: 15em; } -------------------------------------------------------------------------------- /target/web-ssm/css/styles.css: -------------------------------------------------------------------------------- 1 | body{ 2 | margin:0; 3 | color:#6a6f8c; 4 | background:#c8c8c8; 5 | font:600 16px/18px 'Open Sans',sans-serif; 6 | } 7 | *,:after,:before{box-sizing:border-box} 8 | .clearfix:after,.clearfix:before{content:'';display:table} 9 | .clearfix:after{clear:both;display:block} 10 | a{color:inherit;text-decoration:none;} 11 | input, button { 12 | outline: none; 13 | border: none; 14 | } 15 | .login-wrap{ 16 | width:100%; 17 | margin:auto; 18 | max-width:525px; 19 | min-height:670px; 20 | position:relative; 21 | background:url(../img/bg.jpg) no-repeat center; 22 | box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19); 23 | } 24 | .login-html{ 25 | width:100%; 26 | height:100%; 27 | position:absolute; 28 | padding:90px 70px 50px 70px; 29 | background:rgba(40,57,101,.9); 30 | } 31 | .login-html .sign-in-htm, 32 | .login-html .sign-up-htm{ 33 | top:0; 34 | left:0; 35 | right:0; 36 | bottom:0; 37 | position:absolute; 38 | -webkit-transform:rotateY(180deg); 39 | transform:rotateY(180deg); 40 | -webkit-backface-visibility:hidden; 41 | backface-visibility:hidden; 42 | -webkit-transition:all .4s linear; 43 | transition:all .4s linear; 44 | } 45 | .login-html .sign-in, 46 | .login-html .sign-up, 47 | .login-form .group .check{ 48 | display:none; 49 | } 50 | .login-html .tab, 51 | .login-form .group .label, 52 | .login-form .group .button{ 53 | text-transform:uppercase; 54 | } 55 | .login-html .tab{ 56 | font-size:22px; 57 | margin-right:15px; 58 | padding-bottom:5px; 59 | margin:0 15px 10px 0; 60 | display:inline-block; 61 | border-bottom:2px solid transparent; 62 | } 63 | .login-html .sign-in:checked + .tab, 64 | .login-html .sign-up:checked + .tab{ 65 | color:#fff; 66 | border-color:#1161ee; 67 | } 68 | .login-form{ 69 | min-height:345px; 70 | position:relative; 71 | -webkit-perspective:1000px; 72 | perspective:1000px; 73 | -webkit-transform-style:preserve-3d; 74 | transform-style:preserve-3d; 75 | } 76 | .login-form .group{ 77 | margin-bottom:15px; 78 | } 79 | .login-form .group .label, 80 | .login-form .group .input, 81 | .login-form .group .button{ 82 | width:100%; 83 | color:#fff; 84 | display:block; 85 | } 86 | .login-form .group .input, 87 | .login-form .group .button{ 88 | border:none; 89 | padding:15px 20px; 90 | border-radius:25px; 91 | background:rgba(255,255,255,.1); 92 | } 93 | .login-form .group input[data-type="password"]{ 94 | text-security:circle; 95 | -webkit-text-security:circle; 96 | } 97 | .login-form .group .label{ 98 | color:#aaa; 99 | font-size:12px; 100 | } 101 | .login-form .group .button{ 102 | background:#1161ee; 103 | } 104 | .login-form .group label .icon{ 105 | width:15px; 106 | height:15px; 107 | border-radius:2px; 108 | position:relative; 109 | display:inline-block; 110 | background:rgba(255,255,255,.1); 111 | } 112 | .login-form .group label .icon:before, 113 | .login-form .group label .icon:after{ 114 | content:''; 115 | width:10px; 116 | height:2px; 117 | background:#fff; 118 | position:absolute; 119 | -webkit-transition:all .2s ease-in-out 0s; 120 | transition:all .2s ease-in-out 0s; 121 | } 122 | .login-form .group label .icon:before{ 123 | left:3px; 124 | width:5px; 125 | bottom:6px; 126 | -webkit-transform:scale(0) rotate(0); 127 | -ms-transform:scale(0) rotate(0); 128 | transform:scale(0) rotate(0); 129 | } 130 | .login-form .group label .icon:after{ 131 | top:6px; 132 | right:0; 133 | -webkit-transform:scale(0) rotate(0); 134 | -ms-transform:scale(0) rotate(0); 135 | transform:scale(0) rotate(0); 136 | } 137 | .login-form .group .check:checked + label{ 138 | color:#fff; 139 | } 140 | .login-form .group .check:checked + label .icon{ 141 | background:#1161ee; 142 | } 143 | .login-form .group .check:checked + label .icon:before{ 144 | -webkit-transform:scale(1) rotate(45deg); 145 | -ms-transform:scale(1) rotate(45deg); 146 | transform:scale(1) rotate(45deg); 147 | } 148 | .login-form .group .check:checked + label .icon:after{ 149 | -webkit-transform:scale(1) rotate(-45deg); 150 | -ms-transform:scale(1) rotate(-45deg); 151 | transform:scale(1) rotate(-45deg); 152 | } 153 | .login-html .sign-in:checked + .tab + .sign-up + .tab + .login-form .sign-in-htm{ 154 | -webkit-transform:rotate(0); 155 | -ms-transform:rotate(0); 156 | transform:rotate(0); 157 | } 158 | .login-html .sign-up:checked + .tab + .login-form .sign-up-htm{ 159 | -webkit-transform:rotate(0); 160 | -ms-transform:rotate(0); 161 | transform:rotate(0); 162 | } 163 | 164 | .hr{ 165 | height:2px; 166 | margin:60px 0 50px 0; 167 | background:rgba(255,255,255,.2); 168 | } 169 | .foot-lnk{ 170 | text-align:center; 171 | } -------------------------------------------------------------------------------- /target/web-ssm/images/1490147603164.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/images/1490147603164.jpg -------------------------------------------------------------------------------- /target/web-ssm/images/1490148200835.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/images/1490148200835.jpg -------------------------------------------------------------------------------- /target/web-ssm/images/1511969165373.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/images/1511969165373.jpg -------------------------------------------------------------------------------- /target/web-ssm/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 图书管理系统 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | Sign In 20 | Sign Up 21 | 22 | 23 | 24 | Username 25 | 26 | 27 | 28 | Password 29 | 30 | 31 | 32 | 33 | Keep me Signed in 34 | 35 | 36 | 37 | 38 | 39 | 40 | Forgot Password? 41 | 42 | 43 | 44 | 45 | Username 46 | 47 | 48 | 49 | Password 50 | 51 | 52 | 53 | Repeat Password 54 | 55 | 56 | 57 | Email Address 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | Already Member? 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /target/web-ssm/indexpage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 整体架构 16 | 17 | 18 | 19 | 20 | 21 | 22 | 图书管理系统 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 49 | 50 | 51 | 修改密码 52 | 借阅记录 53 | 登出 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Search 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 书名作者出版社借阅状态 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /target/web-ssm/js/jq.validate.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | //拦截form,在form提交前进行验证 3 | $('form').bind('submit',beforeSubmit); 4 | 5 | //为带有valType属性的元素初始化提示信息并注册onblur事件 6 | $.each($("[valType]"),function(i, n) { 7 | $(n).poshytip({ 8 | className: 'tip-yellowsimple', 9 | content: $(n).attr('msg'), 10 | showOn: 'none', 11 | alignTo: 'target', 12 | alignX: 'right', 13 | alignY: 'center', 14 | offsetX: 5, 15 | offsetY: 10 16 | }); 17 | $(n).bind('blur',validateBefore); 18 | }); 19 | 20 | //定义一个验证器 21 | $.Validator=function(para) { 22 | 23 | 24 | } 25 | 26 | $.Validator.ajaxValidate=function() { 27 | beforeSubmit(); 28 | } 29 | 30 | //验证的方法 31 | $.Validator.match=function(para) { 32 | //定义默认的验证规则 33 | var defaultVal = { 34 | NUMBER : "^[0-9]*$", 35 | TEL : "^0(10|2[0-5789]|\\d{3})-\\d{7,8}$", 36 | IP : "^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$", 37 | MOBILE : "^1(3[0-9]|5[0-35-9]|8[0235-9])\\d{8}$", 38 | MAIL : "^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$", 39 | IDENTITY : "((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})((((19|20)(([02468][048])|([13579][26]))0229))|((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))((\\d{3}(x|X))|(\\d{4}))", 40 | CHINESE : "^([\u4E00-\uFA29]|[\uE7C7-\uE7F3])*$", 41 | URL : "^http[s]?://[\\w\\.\\-]+$" 42 | }; 43 | var flag=false; 44 | if(para.rule=='OTHER') {//自定义的验证规则匹配 45 | flag=new RegExp(para.regString).test(para.data); 46 | } 47 | else { 48 | if(para.rule in defaultVal) {//默认的验证规则匹配 49 | flag=new RegExp(defaultVal[para.rule]).test(para.data); 50 | } 51 | } 52 | 53 | return flag; 54 | } 55 | 56 | 57 | 58 | //为jquery扩展一个doValidate方法,对所有带有valType的元素进行表单验证,可用于ajax提交前自动对表单进行验证 59 | $.extend({ 60 | doValidate: function() { 61 | return $.Validator.ajaxValidate(); 62 | } 63 | }); 64 | 65 | }); 66 | 67 | //输入框焦点离开后对文本框的内容进行格式验证 68 | function validateBefore() { 69 | //验证通过标识 70 | var flag=true; 71 | //获取验证类型 72 | var valType=$(this).attr('valType'); 73 | //获取验证不通过时的提示信息 74 | var msg=$(this).attr('msg'); 75 | //自定义的验证字符串 76 | var regString; 77 | 78 | if(valType=='OTHER') {//如果类型是自定义,则获取自定义的验证字符串 79 | regString=$(this).attr('regString'); 80 | flag=$(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType'), regString:$(this).attr('regString')}); 81 | } 82 | else {//如果类型不是自定义,则匹配默认的验证规则进行验证 83 | if($(this).attr('valType')=='required') {//不能为空的判断 84 | if($(this).val()=='') { 85 | flag=false; 86 | } 87 | } 88 | else {//已定义规则的判断 89 | flag=$(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType')}); 90 | } 91 | } 92 | //先清除原来的tips 93 | $(this).poshytip('hide'); 94 | //如果验证没有通过,显示tips 95 | if(!flag) { 96 | $(this).poshytip('show'); 97 | } 98 | 99 | } 100 | 101 | //submit之前对所有表单进行验证 102 | function beforeSubmit() { 103 | var flag=true; 104 | //alert($("[valType]").length); 105 | $.each($("[valType]"),function(i, n) { 106 | //清除可能已有的提示信息 107 | $(n).poshytip('hide'); 108 | 109 | if($(n).attr("valType")=='required') {//对不能为空的文本框进行验证 110 | if($(n).val()=='') { 111 | //显示tips 112 | $(n).poshytip('show'); 113 | flag=false; 114 | } 115 | } 116 | else if($(n).attr("valType")=='OTHER') {//对自定义的文本框进行验证 117 | if(!($(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType'), regString:$(this).attr('regString')}))) { 118 | $(n).poshytip('show'); 119 | flag=false; 120 | } 121 | } 122 | else {//对使用已定义规则的文本框进行验证 123 | if(!($(this).val()!=''&&$.Validator.match({data:$(this).val(), rule:$(this).attr('valType')}))) { 124 | $(n).poshytip('show'); 125 | flag=false; 126 | } 127 | } 128 | }); 129 | return flag; 130 | } 131 | 132 | 133 | //下面是测试代码,不属于验证器的功能代码之内 134 | //用原型的方式来模拟js的类 135 | function Validators() { 136 | 137 | } 138 | 139 | Validators.prototype.subByJs=function(e) { 140 | if($.doValidate()) { 141 | alert('验证通过'); 142 | //todo 143 | } 144 | } 145 | /*www.jq22.com*/ -------------------------------------------------------------------------------- /target/web-ssm/js/loginJS.js: -------------------------------------------------------------------------------- 1 | 2 | function c_o_li_data() { 3 | var user = document.getElementById('username'); 4 | var password = document.getElementById('password'); 5 | var checkor = document.getElementById("check"); 6 | var data = {}; 7 | data["username"] = user.value; 8 | data["password"] = password.value; 9 | if(!checkor.checked){ 10 | user.text(""); 11 | password.text(""); 12 | } 13 | return data; 14 | } 15 | function c_o_li_submit() { 16 | var data = c_o_li_data(); 17 | 18 | $.ajax({ 19 | url: "login", 20 | type: "POST", 21 | //contex: , 22 | data: data, 23 | dataType: "JSON", 24 | success: function(response) { 25 | if (response === true) { 26 | setTimeout('window.location.href="indexpage.html"',1000); 27 | 28 | 29 | } else { 30 | alert("账号或密码错误"); 31 | } 32 | // setTimeout('window.location.href="index.html"', 1000); 33 | }, 34 | error: function(xhr, msg, e) { 35 | alert("error!"); 36 | } 37 | }); 38 | } 39 | 40 | function register_data() { 41 | var username = document.getElementById("user"); 42 | var pass=document.getElementById("pass"); 43 | var passconfirm=document.getElementById("passconfirm"); 44 | if(pass.value!=passconfirm.value) {alert("两次密码不一样!"); return ;} 45 | var email=document.getElementById("email"); 46 | 47 | var data = {}; 48 | data["username"] = user.value; 49 | data["password"] = pass.value; 50 | data["email"] = email.value; 51 | return data; 52 | } 53 | 54 | function register_submit() { 55 | var data = register_data(); 56 | $.ajax({ 57 | url: "register", 58 | type: "POST", 59 | //contex: , 60 | data: data, 61 | dataType: "JSON", 62 | success: function(response) { 63 | if (response === true) { 64 | alert("注册成功!") 65 | } else { 66 | alert("账号已存在"); 67 | } 68 | // setTimeout('window.location.href="index.html"', 3000); 69 | }, 70 | error: function(xhr, msg, e) { 71 | alert("error!"); 72 | } 73 | }); 74 | } 75 | 76 | function logout() { 77 | $.ajax({ 78 | url: "logout", 79 | type: "GET", 80 | dataType: "JSON", 81 | success: function(response) { 82 | if (response === true) { 83 | setTimeout('window.location.href="index.html"', 1000); 84 | } else { 85 | alert("登出失败!"); 86 | } 87 | // setTimeout('window.location.href="index.html"', 3000); 88 | }, 89 | error: function(xhr, msg, e) { 90 | alert("error!"); 91 | } 92 | }); 93 | } 94 | 95 | function online() { 96 | $.ajax({ 97 | url: "online", 98 | type: "GET", 99 | success: function(response) { 100 | if(response!=null) { 101 | $("#UserID").innerHTML(response.toString() 102 | + ''); 103 | } 104 | }, 105 | error: function(xhr, msg, e) { 106 | alert("error!"); 107 | } 108 | }); 109 | } 110 | alert("???"); 111 | function updatePass() { 112 | var pass1 = document.getElementById("pass1"); 113 | var pass2 = document.getElementById("pass2"); 114 | if (pass1.value !== pass2.value) { 115 | alert("两次密码输入不一致!") 116 | pass1.text(""); 117 | pass2.text(""); 118 | } 119 | else { 120 | var data = {}; 121 | data["password"] = pass2.value; 122 | $.ajax({ 123 | url: "updatepass", 124 | type: "POST", 125 | data: data, 126 | dataType: "JSON", 127 | success: function (response) { 128 | if (response === true) { 129 | alert("密码修改成功!"); 130 | setTimeout('window.location.href="index.html"'); 131 | } 132 | alert("sss"); 133 | } 134 | }); 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /target/web-ssm/js/searchJS.js: -------------------------------------------------------------------------------- 1 | 2 | function search(){ 3 | var book_name = document.getElementById("searchTxt"); 4 | data={}; 5 | data["bookName"]=book_name.value; 6 | $.ajax({ 7 | url: "search", 8 | type: "POST", 9 | //contex: , 10 | data: data, 11 | dataType: "JSON", 12 | success: function(response) { 13 | console.log(response); 14 | $("#postTable").html("书名作者出版社借阅状态一键借阅"); 15 | $.each(response, function(i, item) { 16 | var isrent; 17 | if(item.isrent==0) { 18 | isrent = "在架上"; 19 | $("#postTable").append( 20 | ''+item.bookName+''+item.bookWriter+''+item.Publisher+''+isrent+'借阅'); 21 | } 22 | else { 23 | isrent = "已借出"; 24 | $("#postTable").append( 25 | '' + item.bookName + '' + item.bookWriter + '' + item.Publisher + '' + isrent + '借阅' 26 | ); 27 | } 28 | }); 29 | 30 | }, 31 | error: function(xhr, msg, e) { 32 | alert("error!"); 33 | } 34 | }); 35 | } 36 | 37 | 38 | function borrowBook(obj){ 39 | var data={}; 40 | data["id"]=obj.id.toString(); 41 | if(confirm("请确定是否借阅这本书?")){ 42 | $.ajax({ 43 | url:"borrowBook", 44 | type: "POST", 45 | data:data, 46 | dataType:"JSON", 47 | success: function (response) { 48 | if(response === true) 49 | setTimeout('window.location.href="Mybook.html"'); 50 | }, 51 | error: function(xhr, msg, e) { 52 | console.log(e); 53 | } 54 | 55 | }); 56 | 57 | 58 | alert("成功借阅!即日送达!") 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /target/web-ssm/static/vince/rain/css/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jsphLim/LibrarySystem/753237a86366894eb8dce256484249bcbe9036f6/target/web-ssm/static/vince/rain/css/1.jpg -------------------------------------------------------------------------------- /web-ssm.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | file://$MODULE_DIR$/src/main/resources/spring-mvc.xml 18 | file://$MODULE_DIR$/src/main/resources/spring-mybatis.xml 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | --------------------------------------------------------------------------------