[springboot 开发单体web shop] 5. 用户登录及首页展示 (3)

查询用户耗时

get

注册用户耗时

insert

从上图,我们明显能看出来我们每一次的请求耗时,之后就可以针对性的对每一个方法进行优化!!!

sql日志追踪

在我们开发的过程中,往往会遇到针对数据库的CRUD的操作,但是,因为我们使用了mybatis 动态生成了简单的SQL查询,而不是手动编写的,比如我们在UserServiceImpl.java中实现的用户查询以及用户注册代码中的tk.mybatis.mapper.entity.Example 以及 this.usersMapper.insertSelective(user);

public Users findUserByUserName(String username) { // 构建查询条件 Example example = new Example(Users.class); val condition = example.createCriteria() .andEqualTo("username", username); return this.usersMapper.selectOneByExample(example); } @Transactional(propagation = Propagation.REQUIRED) @Override public Users createUser(UserRequestDTO userRequestDTO) throws Exception { log.info("======begin create user : {}=======", userRequestDTO); val user = Users.builder() .id(sid.next()) //生成分布式id .username(userRequestDTO.getUsername()) .password(MD5GeneratorTools.getMD5Str(userRequestDTO.getPassword())) .birthday(DateUtils.parseDate("1970-01-01", "yyyy-MM-dd")) .nickname(userRequestDTO.getUsername()) .face(this.FACE_IMG) .sex(SexEnum.secret.type) .createdTime(new Date()) .updatedTime(new Date()) .build(); this.usersMapper.insertSelective(user); log.info("======end create user : {}=======", userRequestDTO); return user; }

一旦遇到了问题之后,我们往往不知道到底是哪里出现了错误,这个时候我们的SQL是否有问题我们也不知道,因此,接下来我们来配置一种可以让我们看到SQL的小实现:

1.设置日志配置(如图)

log4j.properties


2.修改mybatis配置(log-impl: org.apache.ibatis.logging.stdout.StdOutImpl)

mybatis


3.SELECT效果演示

result


4.INSERT效果演示

INSERT


从上图可以看出控制台JDBC操作进行了2次,其实第一次是对我们的用户名进行校验。第二次INSERT是真实的插入。

通过上面的演示结果,大家可以想到,这个日志针在我们日常的开发中解决问题是非常有必要的。但是一定记得,在上生产的时候,日志一定要关闭,否则数据量一旦大了之后,会对系统的性能造成严重伤害!!!

源码下载

Github 传送门
Gitee 传送门

下节预告

下一节我们将继续开发我们电商的核心部分-商品以及广告的展示,在过程中使用到的任何开发组件,我都会通过专门的一节来进行介绍的,兄弟们末慌!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyfzy.html