精通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
控制器调用对应方法进行登录成功的业务处理,更新用户积分并创建一个登陆对象,将其插入数据库的登陆日志中
重定向到欢迎界面,产生响应返回给用户