SpringBoot构建电商基础秒杀项目 学习笔记

修改 DOMapper

在 UserPasswordDOMapper.xml 添加:

  <select id="selectByUserId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user_password
where user_id = #{userId,jdbcType=INTEGER}
</select>

在 UserPasswordDOMapper 添加:

UserPasswordDO selectByUserId(Integer userId);

添加 model

public class UserModel {

    private Integer id;
private String name;
private Byte gender;
private Integer age;
private String telphone;
private String registerMode;
private String thirdPartyId; private String encrptPassword; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Byte getGender() {
return gender;
} public void setGender(Byte gender) {
this.gender = gender;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getTelphone() {
return telphone;
} public void setTelphone(String telphone) {
this.telphone = telphone;
} public String getRegisterMode() {
return registerMode;
} public void setRegisterMode(String registerMode) {
this.registerMode = registerMode;
} public String getThirdPartyId() {
return thirdPartyId;
} public void setThirdPartyId(String thirdPartyId) {
this.thirdPartyId = thirdPartyId;
} public String getEncrptPassword() {
return encrptPassword;
} public void setEncrptPassword(String encrptPassword) {
this.encrptPassword = encrptPassword;
} }

添加 service

添加接口:

public interface UserService {

    UserModel getUserById(Integer id);
}

添加接口的实现:

@Service
public class UserServiceImpl implements UserService { @Autowired
private UserDOMapper userDOMapper; @Autowired
private UserPasswordDOMapper userPasswordDOMapper; @Override
public UserModel getUserById(Integer id){
UserDO userDO = userDOMapper.selectByPrimaryKey(id); if(userDO == null){
return null;
} UserPasswordDO userPasswordDO = userPasswordDOMapper.selectByUserId(userDO.getId()); return convertFromDataObject(userDO, userPasswordDO); } private UserModel convertFromDataObject(UserDO userDO, UserPasswordDO userPasswordDO){
if(userDO == null){
return null;
} UserModel userModel = new UserModel();
BeanUtils.copyProperties(userDO, userModel); if(userPasswordDO != null){
userModel.setEncrptPassword(userPasswordDO.getEncrptPassword());
} return userModel;
}
}

添加 viewobject

public class UserVO {

    private Integer id;
private String name;
private Byte gender;
private Integer age;
private String telphone; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Byte getGender() {
return gender;
} public void setGender(Byte gender) {
this.gender = gender;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getTelphone() {
return telphone;
} public void setTelphone(String telphone) {
this.telphone = telphone;
}
}

添加 controller

@Controller("user")
@RequestMapping("/user")
public class UserController { @Autowired
private UserService userService; @RequestMapping("/get")
@ResponseBody
public UserVO getUser(@RequestParam(name="id") Integer id){
UserModel userModel = userService.getUserById(id); return convertFromModel(userModel);
} private UserVO convertFromModel(UserModel userModel){
if(userModel == null){
return null;
} UserVO userVO = new UserVO();
BeanUtils.copyProperties(userModel, userVO); return userVO;
}
}
  • data object: 与数据库完全映射,不包含任何逻辑

  • model: 业务交互逻辑模型

  • view object: 前端展示数据

源码:spring-boot-seckill

Spring Boot 构建电商基础秒杀项目 (二) 使用 Spring MVC 方式获取用户信息的更多相关文章

  1. Spring Boot 构建电商基础秒杀项目 (一) 项目搭建

    SpringBoot构建电商基础秒杀项目 学习笔记 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包, Spring Boot ...

  2. Spring Boot 构建电商基础秒杀项目 (十二) 总结 (完结)

    SpringBoot构建电商基础秒杀项目 学习笔记 系统架构 存在问题 如何发现容量问题 如何使得系统水平扩展 查询效率低下 活动开始前页面被疯狂刷新 库存行锁问题 下单操作步骤多,缓慢 浪涌流量如何 ...

  3. Spring Boot 构建电商基础秒杀项目 (十一) 秒杀

    SpringBoot构建电商基础秒杀项目 学习笔记 新建表 create table if not exists promo ( id int not null auto_increment, pro ...

  4. Spring Boot 构建电商基础秒杀项目 (十) 交易下单

    SpringBoot构建电商基础秒杀项目 学习笔记 新建表 create table if not exists order_info ( id varchar(32) not null defaul ...

  5. Spring Boot 构建电商基础秒杀项目 (九) 商品列表 & 详情

    SpringBoot构建电商基础秒杀项目 学习笔记 ItemDOMapper.xml 添加 <select id="listItem" resultMap="Bas ...

  6. Spring Boot 构建电商基础秒杀项目 (八) 商品创建

    SpringBoot构建电商基础秒杀项目 学习笔记 新建数据表 create table if not exists item ( id int not null auto_increment, ti ...

  7. Spring Boot 构建电商基础秒杀项目 (七) 自动校验

    SpringBoot构建电商基础秒杀项目 学习笔记 修改 UserModel 添加注解 public class UserModel { private Integer id; @NotBlank(m ...

  8. Spring Boot 构建电商基础秒杀项目 (六) 用户登陆

    SpringBoot构建电商基础秒杀项目 学习笔记 userDOMapper.xml 添加 <select id="selectByTelphone" resultMap=& ...

  9. Spring Boot 构建电商基础秒杀项目 (五) 用户注册

    SpringBoot构建电商基础秒杀项目 学习笔记 UserService 添加 void register(UserModel userModel) throws BusinessException ...

随机推荐

  1. CentOS7时间设置问题

    本地安装一个VMWare player虚拟机客户端,并安装了Linux CentOS7 Basic Web Server系统,时区在安装时已经选择了Asia/Shanghai,但是安装完成后,时间和当 ...

  2. Tomcat的九个内置对象

    在之前学习过程中使用的对象大部分都是我们自己使用new关键字或者反射创建的,现在容器中会自动创建对象,我们只要直接使用即可,不需要我们再去创建这些对象,在Tomcat容器中提供了九种内置对象,有一些不 ...

  3. Java常见的几种内存溢出及解决方案

    1.JVM Heap(堆)溢出:java.lang.OutOfMemoryError: Java heap space JVM在启动的时候会自动设置JVM Heap的值, 可以利用JVM提供的-Xmn ...

  4. mysql 行转列 列转行

    一.行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容. 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id ) ...

  5. face recognition[variations of softmax][ArcFace]

    本文来自<ArcFace: Additive Angular Margin Loss for Deep Face Recognition>,时间线为2018年1月.是洞见的作品,一作目前在 ...

  6. eclipse svn 删除不了项目,合并不了问题

    window/preferences  下  Teme  >svn  svn接口选择跟删除不了有关 但是合并 需要选择 JavaHl svn 服务端 1.8 eclipse选则 http://s ...

  7. redis底层设计(二)——内存映射数据结构

    我们继续接着上一篇博客,今天来看看内存映射数据结构. 上篇我们讲了内部数据结构,虽然内部数据结构非常强大,但是创建一系列完整的数据结构本身也是一件相当耗费时间的工作,当一个对象包含的元素数量并不多,或 ...

  8. Linux Namespace : Mount

    Mount namespace 为进程提供独立的文件系统视图.简单点说就是,mount namespace 用来隔离文件系统的挂载点,这样进程就只能看到自己的 mount namespace 中的文件 ...

  9. Django Rest framework基础使用之 serializer

    rest-framework文档地址:http://www.django-rest-framework.org/ Django Rest framework是一个非常强大且灵活的工具包,用于构建web ...

  10. 模块的语法 import ,from...import....

    ------------------------积极的人在每一次忧患中都看到一个机会, 而消极的人则在每个机会都看到某种忧患 1. 认识模块 模块可以认为是一个py文件. 模块实际上是我们的py文件运 ...