admin 管理员组

文章数量: 887031

POJO.

 pojo里包含dto,entity,vo

  • pojo指简单的Java对象, 是实体类entity和值对象VO 还有数据传输对象DTO的统称

  • Entity实体类, 通常实体类的属性和表的字段是一致的

  • DTO 数据传输对象, 当客户端给服务器传输参数时, 参数数量可能和实体类的数量不一致,会比实体类的数量要少,比如实体类中有10个属性, 客户端只传递了3个, 这样用实体类接收的话会有7个属性值为null, 使用DTO的好处是所有属性都有值, 只要发现了null则说明出错了 .

  • VO ValueObject值对象, 当从数据库里面查询数据时,有时查询字段数量会比实体类中的属性数量要少, 这样实体类中也会存在大量字段值为null,而且这些null也会从服务器响应给客户端,这样这些null值也会占用流量, VO的作用是查询几个字段在VO里面有存在几个属性, 这样就能避免网络传输时传递null.

  • 总结: 之前接收客户端传递过来数据时使用entity,接收从数据库查询回来的数据使用的也是entity, 以后 接收客户端传递过来的数据使用DTO, 接收从数据库中查询回来的数据使用VO

config.MyBatisConfig

@Configuration
@MapperScan("cn.tedu.weibo.mapper")
public class MybatisConfig {}

 controller.UserController

@RestController
public class UserController {@Autowired(required = false)UserMapper mapper;@RequestMapping("/reg")public int reg(@RequestBody UserRegDTO user){System.out.println("user = " + user);//通过用户输入的用户名查询对应的数据UserVO u = mapper.selectByUsername(user.getUsername());//判断如果值不为null 说明用户名已经存在了if (u!=null){return 2;}mapper.insert(user);//执行插入数据的操作return 1;}@RequestMapping("/login")public int login(@RequestBody UserLoginDTO user){UserVO u = mapper.selectByUsername(user.getUsername());if (u!=null){if (u.getPassword().equals(user.getPassword())){return 1;}return 3;}return 2;}
}

mapper.UserMapper

public interface UserMapper {void insert(UserRegDTO user);UserVO selectByUsername(String username);}

本文标签: POJO