亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 98
粉絲 1
評(píng)論 0
訪問量 82730
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
RBAC原則設(shè)計(jì)Friday權(quán)限管理系統(tǒng)(2)
阿杰
原創(chuàng)
326人瀏覽過

后端技術(shù)

一、構(gòu)建后端SpringBoot項(xiàng)目

1、使用Spring Initializr構(gòu)建項(xiàng)目

2、創(chuàng)建spring項(xiàng)目時(shí)勾選以下依賴

  • Developer Tools: SpringBoot DevTools、Lombok
  • Web: SpringWeb
  • SQL: SpringData JPA、MySQL Driver

二、使用Spring Data JPA構(gòu)建數(shù)據(jù)訪問層

1、使用ide連接MySQL數(shù)據(jù)庫

2、使用Persistence插件生成實(shí)體對(duì)象

(1)創(chuàng)建包‘edu.friday.model’,作為實(shí)體對(duì)象的生成位置
(2)使用Persistence插件生成數(shù)據(jù)表對(duì)應(yīng)的實(shí)體對(duì)象(生成持久層)

3、引入Lombok插件簡(jiǎn)化實(shí)體類代碼

生成的實(shí)體類中有大量的getxxx和setxxx的代碼片段,導(dǎo)致實(shí)體類比較冗長(zhǎng),可以使用Lombok注解來消除Java類中的大量冗長(zhǎng)代碼。
1、改寫SysUser實(shí)體類,再SysUser類上面增加下面三個(gè)Lombok注解:

  • @Data:用于給類增加get、set、equals、hashCode和toString方法;
  • @NoArgsConstructor:用于給類增加無參構(gòu)造器;
  • @AllArgsConstructor:用于給類增加包含所有參數(shù)的構(gòu)造器。
    2、將Entity注解放到字段上面,然后刪除掉多余的getXXX、setXXX、equals和hashCode方法,另外不建議使用原始類型,將userId的long原始類型改為L(zhǎng)ong封裝類型,因?yàn)镾pring Data JPA默認(rèn)long的值為0,0在業(yè)務(wù)中是一個(gè)有意義的數(shù)值,而Long默認(rèn)值為NULL;

4、編寫UserRepository接口操作SysUser實(shí)體類

1、在‘edu.friday.repository’包里創(chuàng)建SysUserRepository接口,繼承JpaRepository<SysUser,Long>即可實(shí)現(xiàn)對(duì)SysUser對(duì)象的操作

5、配置數(shù)據(jù)源連接池

1、在pom.xml文件中添加alibaba druid數(shù)據(jù)連接池的依賴

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.1.10</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.commons</groupId>
  8. <artifactId>commons-pool2</artifactId>
  9. </dependency>

2、resources目錄下新建yml文件,做基礎(chǔ)配置

3、編寫測(cè)試類

  1. class FridayApplicationTests {
  2. @Autowired
  3. SysUserRepository sysUserRepository;
  4. @Test
  5. void contextLoads() {
  6. }
  7. @Test
  8. void testLog(){
  9. System.out.println(666);
  10. }
  11. /**
  12. * 查找所有用戶列表
  13. * */
  14. @Test
  15. void testFindUsers(){
  16. System.out.println(sysUserRepository.findAll());
  17. }
  18. }

4、運(yùn)行結(jié)果,成功獲取到數(shù)據(jù)

6、編寫通用BaseModel類

業(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基類來管理公共字段。

  1. package edu.friday.common.base;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import jakarta.persistence.Column;
  4. import jakarta.persistence.MappedSuperclass;
  5. import jakarta.persistence.PrePersist;
  6. import jakarta.persistence.PreUpdate;
  7. import lombok.AllArgsConstructor;
  8. import lombok.Data;
  9. import lombok.NoArgsConstructor;
  10. import java.io.Serializable;
  11. import java.util.Date;
  12. /**
  13. * Entity基類
  14. */
  15. @MappedSuperclass
  16. @Data
  17. @NoArgsConstructor
  18. @AllArgsConstructor
  19. public class BaseModel implements Serializable {
  20. private static final long serialVersionUID = 1L;
  21. /**
  22. * 創(chuàng)建者
  23. */
  24. private String createBy;
  25. /**
  26. * 創(chuàng)建時(shí)間
  27. */
  28. @Column(updatable = false)
  29. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  30. private Date createTime;
  31. /**
  32. * 更新者
  33. */
  34. private String updateBy;
  35. /**
  36. * 更新時(shí)間
  37. */
  38. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  39. private Date updateTime;
  40. @PrePersist
  41. protected void onCreate() {
  42. createTime = new Date();
  43. }
  44. @PreUpdate
  45. protected void onUpdate() {
  46. updateTime = new Date();
  47. }
  48. }

SysUser改寫為如下所示

  1. package edu.friday.model;
  2. import edu.friday.common.base.BaseModel;
  3. import jakarta.persistence.*;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import java.sql.Timestamp;
  8. import java.util.Objects;
  9. @Entity
  10. @Table(name = "sys_user", schema = "friday", catalog = "")
  11. @Data
  12. @NoArgsConstructor
  13. @AllArgsConstructor
  14. public class SysUser extends BaseModel {
  15. @GeneratedValue(strategy = GenerationType.IDENTITY)
  16. @Id
  17. @Column(name = "user_id")
  18. private Long userId;
  19. @Basic
  20. @Column(name = "user_name")
  21. private String userName;
  22. @Basic
  23. @Column(name = "nick_name")
  24. private String nickName;
  25. @Basic
  26. @Column(name = "user_type")
  27. private String userType;
  28. @Basic
  29. @Column(name = "email")
  30. private String email;
  31. @Basic
  32. @Column(name = "phonenumber")
  33. private String phonenumber;
  34. @Basic
  35. @Column(name = "sex")
  36. private String sex;
  37. @Basic
  38. @Column(name = "avatar")
  39. private String avatar;
  40. @Basic
  41. @Column(name = "password")
  42. private String password;
  43. @Basic
  44. @Column(name = "status")
  45. private String status;
  46. @Basic
  47. @Column(name = "del_flag")
  48. private String delFlag;
  49. @Basic
  50. @Column(name = "login_ip")
  51. private String loginIp;
  52. @Basic
  53. @Column(name = "login_date")
  54. private Timestamp loginDate;
  55. /** @Basic
  56. @Column(name = "create_by")
  57. private String createBy;
  58. @Basic
  59. @Column(name = "create_time")
  60. private Timestamp createTime;
  61. @Basic
  62. @Column(name = "update_by")
  63. private String updateBy;
  64. @Basic
  65. @Column(name = "update_time")
  66. private Timestamp updateTime;*/
  67. @Basic
  68. @Column(name = "remark")
  69. private String remark;
  70. }

7、工具類與封裝HTTP結(jié)果

本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)