(1)創(chuàng)建包‘edu.friday.model’,作為實(shí)體對(duì)象的生成位置
(2)使用Persistence插件生成數(shù)據(jù)表對(duì)應(yīng)的實(shí)體對(duì)象(生成持久層)
生成的實(shí)體類中有大量的getxxx和setxxx的代碼片段,導(dǎo)致實(shí)體類比較冗長(zhǎng),可以使用Lombok注解來消除Java類中的大量冗長(zhǎng)代碼。
1、改寫SysUser實(shí)體類,再SysUser類上面增加下面三個(gè)Lombok注解:
1、在‘edu.friday.repository’包里創(chuàng)建SysUserRepository接口,繼承JpaRepository<SysUser,Long>即可實(shí)現(xiàn)對(duì)SysUser對(duì)象的操作
1、在pom.xml文件中添加alibaba druid數(shù)據(jù)連接池的依賴
<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文件,做基礎(chǔ)配置
3、編寫測(cè)試類
class FridayApplicationTests {
@Autowired
SysUserRepository sysUserRepository;
@Test
void contextLoads() {
}
@Test
void testLog(){
System.out.println(666);
}
/**
* 查找所有用戶列表
* */
@Test
void testFindUsers(){
System.out.println(sysUserRepository.findAll());
}
}
4、運(yùn)行結(jié)果,成功獲取到數(shù)據(jù)
業(yè)務(wù)系統(tǒng)的大部分表都有create_time、create_by、update_time、update_by這四個(gè)公共字段,用來記錄數(shù)據(jù)的創(chuàng)建和更新時(shí)間信息等,為了簡(jiǎn)化代碼,編寫B(tài)aseModel作為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;
/**
* 創(chuàng)建者
*/
private String createBy;
/**
* 創(chuàng)建時(shí)間
*/
@Column(updatable = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新時(shí)間
*/
@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;
}
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)