美容o2o平台项目dao层分析
美容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 {
//第一个参数是返回的结果类型,一般是实体类,第二个参数是主键类型,一般为id
//PagingAndSortingRepository是一个提供了分页和排序的类SysUser findSysUserByUsername(String username);Page findByUsernameContaining(String username, Pageable pageable);List findAllById(Long id);
}
总结
总的来说dao层也没啥,相对于数据库访问接口,更重要的还是PO对象
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
