15年进入大学,虽然不敢说什么一眼万年,但是我转眼也有三年多了。目前正在实习中。毕设题目已经选好。选了我的数据库老师(本来是不打算涉及到后台部分的,只是打算前端显示的炫酷一些,因为想法中都是使用网上的公开 API 实现)
老师和我说到时候会问数据库的问题,所以一定要有工作量,再加上我一直有些后悔大学上课没有好好学习后台开发,当然学校的知识你们都懂的。所以正好逼自己一下,比较彻底的了解后台的基本开发和入门。
这里我要很感谢一个为了爱从宁波跑到广西的老哥,他在我学习中给予了非常大的帮助,每次我问他问题都会耐心的解答。
话不多说,先介绍一下我的环境:
- window 10
- Idea 2018
- tomcat 7,8 都有使用(我装了两个)
- AndroidStudio 3.2.1
- gradle 4.6
- maven 负责 jar 包管理
后台使用框架技术:SSM,App 端请求:RxJava + Retrofit 实现简单网络的访问。
一:后台的搭建
1)新建 maven 项目
这里大家可以有两个选择,一个是新建 maven 空项目,一个是新建 maven web 项目都可以。不过我好像看过一篇文章说新建 maven 空项目的好处,不过不管了,这里我使用的是 新建 maven web 项目。
sx01.png
字写的比较丑,,,见谅,接下来点击 next
xs02.png
这里的名字随便写,没什么影响,点击 next
xs3.png
因为我单独装过 maven 3.6 版本,这样会便于管理,因为路径和配置什么的方便查找,如果你是用第二个也没啥关系,那是系统自带的,其实对于一般使用来说没什么区别。
点击 next
xs04.png
这里点击 auto-import 即可。其他的一些基础系统会自动帮你配置,你只需要等待就 ok 了。
xs05.png
当看到出现这几个打字,尤其是 finish 之后就说明基本项目新建好了。接下来就是配置 SSM 了。
下面我会列出我的配置信息
xs06.png
这是项目刚新建好的目录结构
xs07.png
这是项目搭建完成后的目录,下面是配置信息。
大家新建项目的时候可以按照这个来操作
sx08.png
不同的资源文件夹有不同的颜色,大家对号入座就行
- pom.xml 文件
<?xml version="1.0" encoding="UTF-8"?>4.0.0com.jiwenjie Gratuation_example 1.0-SNAPSHOTwarGratuation_example Maven Webapphttp://www.example.comUTF-81.71.7junit junit 4.11testjunit junit 4.11testorg.slf4j slf4j-api 1.7.12ch.qos.logback logback-core 1.1.1mysql mysql-connector-java 5.1.36runtimec3p0 c3p0 0.9.1.2org.mybatis mybatis 3.4.1org.mybatis mybatis-spring 1.3.0taglibs standard 1.1.2javax.servlet jstl 1.2com.fasterxml.jackson.core jackson-core 2.8.1com.fasterxml.jackson.core jackson-databind 2.8.1javax.servlet javax.servlet-api 3.1.0org.springframework spring-core 4.1.7.RELEASEorg.springframework spring-beans 4.1.7.RELEASEorg.springframework spring-context 4.1.7.RELEASEorg.springframework spring-jdbc 4.1.7.RELEASEorg.springframework spring-tx 4.1.7.RELEASEorg.springframework spring-web 4.1.7.RELEASEorg.springframework spring-webmvc 4.1.7.RELEASEorg.springframework spring-test 4.1.7.RELEASEcommons-io commons-io 1.3.2commons-fileupload commons-fileupload 1.2.1Gratuation_example maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
这里是 maven 包的自动导入,大家把这些导入后等待就 ok 了。
- jdbc.properties 文件
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/douban_movie?useUnicode=true&characterEncoding=utf-8&useSSL=falsejdbc.username=rootjdbc.password=rootjdbc.initialPoolSize=10jdbc.maxPoolSize=30jdbc.minPoolSize=10jdbc.checkoutTimeout=1000jdbc.acquireRetryAttempts=2jdbc.idleConnectionTestPeriod=60jdbc.maxIdleTime=240jdbc.acquireIncrement=5jdbc.maxConnectionAge=3000jdbc.maxStatements=0
- log4j.porperties 文件
log4j.logger.org.mybatis=TRACElog4j.logger.com.suny.dao=TRACElog4j.rootLogger=WARN, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.FileAppenderlog4j.appender.logfile.File=target/spring.loglog4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
- mybatis-config.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
- logback.xml 文件
<?xml version="1.0" encoding="UTF-8"?>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
- spring-dao.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
- spring-service.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
- spring-web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
- web.xml 文件
Archetype Created Web Applicationindex.jspmvc-dispatcherorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring/spring-*.xml1mvc-dispatcher/
到此基本配置结束,接下来就是代码的部分
xs09.png
- User 实体类
package com.example.entity;import com.fasterxml.jackson.annotation.JsonInclude;/** * author: Jiwenjie * email: Jiwenjie97@gmail.com * time: 2018-12-22 * desc: */@JsonInclude(JsonInclude.Include.NON_NULL) // 去除返回接口值为 null 的字段public class User { private Integer id; private String username; private String phone; private int isAdmin; private String avatar; private String password; @Override public String toString() { return "User{" + "id=" + id +