(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 {
@Autowired
SysUserRepository sysUserRepository;
@Test
void contextLoads() {
}
@Test
void testLog(){
System.out.println(666);
}
/**
* 查找所有用户列表
* */
@Test
void 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
@AllArgsConstructor
public 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;
@PrePersist
protected void onCreate() {
createTime = new Date();
}
@PreUpdate
protected 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
@AllArgsConstructor
public 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号