精通Spring4.x-chapter2

下载安装Maven

创建数据库和表

在创建数据库表时,要将login_log_id设为非主键或设置可以为Null,否则运行时无法写入登陆日志

建立工程,并选定编码格式为UTF-8

使用SpringJDBC作为持久层的实现技术

持久层工作:从数据库表中加载数据并实例化领域对象

领域对象:代表业务状态,贯穿展现、业务和持久层,并最终被持久化到数据库中

领域模型中的实体类分为四种类型:

PO(persistent object):持久化对象,表示持久层的数据结构(如数据库表)

DO(domain object):领域对象,即业务实体对象

DTO(data transfer object):数据传输对象,泛指用于展示层与服务层之间的数据传输对象,可以看作组合版的DO

VO(view object):视图对象,用于展示层试图状态对应的对象。

对应简单模块,PO、DO和VO没有什么区别,可以直接复用PO

  • 采用注解的配置方式

SpringJDBC将传统的JDBC API进行薄层封装,无需执行(获取连接→创建statement→执行数据操作→获取结果→关闭statement→关闭结果集→关闭连接)以及异常处理的操作,通过模板类便可以完成大部分数据库的访问操作。

  • 项目进行的报错及解决方法:

导入项目后在右边的Maven进行clean和install

(注意将工具栏的蓝色⚡选中,以跳过单元测试,提高编译打包效率,而且若测试有问题也不会影响整个项目的构建)

在pom文件中配置对应版本的MySQL和maven-surefire-plugin

关于引入错误

https://blog.csdn.net/ccorg/article/details/89293423

工程重新导入

删除idea

并且将language level改为5以上,以使得@Override可以编译

运行时要修改MySQL时区

https://www.codeprj.com/blog/b9488a1.html

整体流程:

用户访问网页,输入用户名和密码,点击登录

Spring通过调用控制器相应登录请求

控制器通过调用对应方法查询是否存在匹配用户,内部调用持久层对象完成数据库的访问

控制器调用对应方法加载匹配的用户对象,并更新用户最近一次登录时间和ip

控制器调用对应方法进行登录成功的业务处理,更新用户积分并创建一个登陆对象,将其插入数据库的登陆日志中

重定向到欢迎界面,产生响应返回给用户