美容o2o平台我的项目dao层剖析

PO-User类

以用户类进行剖析

@EqualsAndHashCode(callSuper = true)/*callSuper = true是这样的:因为SysUser继承了父类BaseEntity,默认在比拟时是疏忽继承自BaseEntity的元素的,加上callSuper能够同时比拟父类中的元素*/@Data@Entity/*申明此类为一个PO实体类,并交由Spring治理,如果不加,则会报错 Not a managed type: class com.attack204.test.po.SysUserPo。(会无奈创立sysUserDao接口)*/@DynamicInsert/*如果在插入元素时,有元素没有申明(例如没有指定creator),会报错,然而加上此注解之后则会设置为默认值。默认值在mysql的创立语句中指定*/@DynamicUpdate/*这个注解挺有争议的,目前临时还没遇到网上说的笼罩问题,先mark一下。目前就了解成除了加快速度没啥用吧233*/@Table(name = "tb_sys_user")/*设置和哪个表相关联,默认是SysUser,即类名*/public class SysUser extends BaseEntity {    @Id //设置主键,不然没法查问    @GeneratedValue(strategy = GenerationType.IDENTITY)    //设置减少的策略,这里默认是递增,一共有四种,具体能够百度    private Long id;    /**     * 所属公司、商家     */    Long corp;    /**     * 用户名     */    private String username;    /**     * 手机号     */    private String phone;    /**     * 明码     */    private String password;    /**     * 状态     */    private Integer status;}

Po-Base类

@Data@MappedSuperclass/*通知Spring这个类并不映射到实体类,然而它的子类会映射到实体类。删掉并不影响程序运行*/public class BaseEntity {    private String creator;    private Long createTime;    private String updater;    private Long updateTime;}

Dao层

有了jpa之后Dao层只须要搞一个接口就好

@Repository //将此Dao增加到Spring容器中public interface SysUserDao extends PagingAndSortingRepository<SysUser, Long> {//第一个参数是返回的后果类型,个别是实体类,第二个参数是主键类型,个别为id//PagingAndSortingRepository是一个提供了分页和排序的类    SysUser findSysUserByUsername(String username);    Page<SysUser> findByUsernameContaining(String username, Pageable pageable);    List<SysUser> findAllById(Long id);}

总结

总的来说dao层也没啥,绝对于数据库拜访接口,更重要的还是PO对象

本文由博客群发一文多发等经营工具平台 OpenWrite 公布