开发实体类

开发实体类之间先在pom文件中加入该依赖


        
            org.projectlombok
            lombok
            provided
        

我们在实体类中声明各个属性后还需要分别为他们声明get、set方法、该实体类的至少一个构造方法和重写toString方法。虽然idea很强大,可以快速帮我们写好这些方法,但这么多代码写在实体类中难免有些繁杂了,所以我们可以运用注解来实现这些功能,这样就不需要写过多的方法了。

//@Setter //代替了属性的所有set方法
//@Getter //代替了属性的所有get方法
//@ToString //代替了重写的toString方法
@NoArgsConstructor //无参构造方法
@AllArgsConstructor //传入所有参数的构造方法
//@EqualsAndHashCode //代替了hashcode和equals方法

@Data //代表上面的那一堆注解,但不包括其中的俩个构造方法的注解
//如果数据库中的表名与实体类的类名不相同,用@TableName("")注解映射

下面就要对实体类中的各个属性进行增强了:

   实体类中属性名与数据库中字段名不相同,需要用@TableField(value=“ ”),进行映射,双引号中写的是数据库中的字段名。

   主键id的自动填充 :

    //@TableId(type= IdType.AUTO) 设置id自增从0开始自增
    //@TableId(type= IdType.INPUT) id需要手动用set方法写入
    //@TableId(type= IdType.ASSIGN_ID) id是用雪花算法自动生成id(可兼容数字和字符串)
    private Integer id;

@TableField(select = false)  表示该字段不参与查询,我们在用select方法查询时不会被显示出来让我们看到,只有我们在查看数据库中的表时才会看到。

@TableField(exist = false)  实体类中某一属性添加了该注解,代表数据库字段中没有该对应字段,同时不会对对数据库进行操作产生影响。

 逻辑删除:

      先来简单解释一下什么是逻辑删除:就比如公司某销冠员工小明辞职了,该公司就需要把关于员工小明的所有信息删除,但如果删除了那么在公司进行总结时,属于销冠的那部分销售记录与盈利金额都会被删除,这就造成了公司实际的销售额与数据库中的不符合。

   为了解决这种问题,就有了逻辑删除,就是数据库表中新增一个字段,该属性用于指明该员工是否还在本公司工作,这样公司在需要删除员工小明信息的时候,就不用删除小明的信息了,只需要修改数据库中小明的该字段信息,让其信息为该公司设置的已辞退的数据就可以了。

    //@TableLogic(value = "0",delval = "1") //value代表没删,delval代表删了
    //这样在执行删除操作时,实际上执行的sql语句是对表中的该字段进行修改
    //但执行查询时,该字段为1的会被去掉,查不到了;想查到该字段为1的数据的话,需要自己写sql语句查。
    private int deleted;

deleted为新增的字段。这样我们在执行delete方法时,代码实际上是去修改被删除员工的deleted字段信息了。(注意:我们写代码时,写的是delete方法的代码,不是update改修方法的代码)

 乐观锁:解释:在直播间卖某产品,该产品数量有限比较少,但直播间准备抢该产品的用户多得多,该产品供不应求。这时我们就需要对该产品用乐观锁,防止出现多个用户同时对最后一件产品进行操作,且都显示操作成功的错误。

乐观锁,是每对该行数据进行修改一次,该字段的值就会增加1;

乐观锁实际上是获取该行数据中的version字段值并进行加1,并把version的值作为where中的修改条件。如果多个用户同时对该同一产品进行操作,则这多个用户获取的version值是一样的,所以最终只有一个人能操作成功。

    @Version
    private int version;

你可能感兴趣的:(java,前端,服务器)