




(1)创建包‘edu.friday.model’,作为实体对象的生成位置
(2)使用Persistence插件生成数据表对应的实体对象(生成持久层)



生成的实体类中有大量的getxxx和setxxx的代码片段,导致实体类比较冗长,可以使用Lombok注解来消除Java类中的大量冗长代码。
1、改写SysUser实体类,再SysUser类上面增加下面三个Lombok注解:

1、在‘edu.friday.repository’包里创建SysUserRepository接口,继承JpaRepository<SysUser,Long>即可实现对SysUser对象的操作
1、在pom.xml文件中添加alibaba druid数据连接池的依赖
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>
2、resources目录下新建yml文件,做基础配置

3、编写测试类
class FridayApplicationTests {@AutowiredSysUserRepository sysUserRepository;@Testvoid contextLoads() {}@Testvoid testLog(){System.out.println(666);}/*** 查找所有用户列表* */@Testvoid testFindUsers(){System.out.println(sysUserRepository.findAll());}}
4、运行结果,成功获取到数据
业务系统的大部分表都有create_time、create_by、update_time、update_by这四个公共字段,用来记录数据的创建和更新时间信息等,为了简化代码,编写BaseModel作为Entity基类来管理公共字段。
package edu.friday.common.base;import com.fasterxml.jackson.annotation.JsonFormat;import jakarta.persistence.Column;import jakarta.persistence.MappedSuperclass;import jakarta.persistence.PrePersist;import jakarta.persistence.PreUpdate;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;import java.util.Date;/*** Entity基类*/@MappedSuperclass@Data@NoArgsConstructor@AllArgsConstructorpublic class BaseModel implements Serializable {private static final long serialVersionUID = 1L;/*** 创建者*/private String createBy;/*** 创建时间*/@Column(updatable = false)@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;/*** 更新者*/private String updateBy;/*** 更新时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date updateTime;@PrePersistprotected void onCreate() {createTime = new Date();}@PreUpdateprotected void onUpdate() {updateTime = new Date();}}
SysUser改写为如下所示
package edu.friday.model;import edu.friday.common.base.BaseModel;import jakarta.persistence.*;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.sql.Timestamp;import java.util.Objects;@Entity@Table(name = "sys_user", schema = "friday", catalog = "")@Data@NoArgsConstructor@AllArgsConstructorpublic class SysUser extends BaseModel {@GeneratedValue(strategy = GenerationType.IDENTITY)@Id@Column(name = "user_id")private Long userId;@Basic@Column(name = "user_name")private String userName;@Basic@Column(name = "nick_name")private String nickName;@Basic@Column(name = "user_type")private String userType;@Basic@Column(name = "email")private String email;@Basic@Column(name = "phonenumber")private String phonenumber;@Basic@Column(name = "sex")private String sex;@Basic@Column(name = "avatar")private String avatar;@Basic@Column(name = "password")private String password;@Basic@Column(name = "status")private String status;@Basic@Column(name = "del_flag")private String delFlag;@Basic@Column(name = "login_ip")private String loginIp;@Basic@Column(name = "login_date")private Timestamp loginDate;/** @Basic@Column(name = "create_by")private String createBy;@Basic@Column(name = "create_time")private Timestamp createTime;@Basic@Column(name = "update_by")private String updateBy;@Basic@Column(name = "update_time")private Timestamp updateTime;*/@Basic@Column(name = "remark")private String remark;}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号