当前位置: 首页 > news >正文

网站统计源码下载如何免费查询企业信息

网站统计源码下载,如何免费查询企业信息,泰安大众网,网络建设工程师是干什么的注解 tablename注解 - 描述:表名注解,标识实体类对应的表 - 使用位置:实体类 代码举例: TableName//可以不加,使用实体类的名字作为表名!忽略大小写 //BaseMapper->User实体类-》实体类名-》表名数据…

注解

@tablename注解

- 描述:表名注解,标识实体类对应的表

- 使用位置:实体类

代码举例:

@TableName//可以不加,使用实体类的名字作为表名!忽略大小写

//BaseMapper->User实体类-》实体类名-》表名数据库操作

//当数据库的表名和实体类命名不同(忽略大小写),使用@TableName注解指定表名

public class User {

    private Long id;

    private String name;

    private Integer age;

    private String email;

}

@TableId注解

应用场景:①当主键的列名与属性名不一致时,②主键生成策略不是默认策略

- 描述:主键注解

- 使用位置:实体类主键字段

例如

@TableName("sys_user")

/**

*默认使用雪花算法:

*①数据库的主键是bigint/varchar64)类型

*②对应实体类的属性是Long类型

*③随机生成一个数字,给与主键值(不重复)

*Auto

mysql数据库创建表的主键列的时候,类型为数字,还要加上auto_increment

②插入数据自动增长。

*/

public class User {

    @TableId(value="主键列名",type=主键策略)

    private Long id;

    private String name;

    private Integer age;

    private String email;

}

|属性|

类型

|必须指定

|默认值|

描述|

|value|

String|

|""|

主键字段名|

|type

Enum

|否

dType.NONE|

指定主键类型

IdType属性可选值:

|值

|描述|

|AUTO

|数据库 ID 自增 (mysql配置主键自增长)|

|ASSIGN_ID(默认)

|分配 ID(主键类型为 Number(Long )或 String)(since 3.3.0),使用接口`IdentifierGenerator`的方法`nextId`(默认实现类为`DefaultIdentifierGenerator`雪花算法)|

雪花算法:随机生成一个long类型不重复的数字

全局配置修改主键策略:

mybatis-plus:

  configuration:

    # 配置MyBatis日志

    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  global-config:

    db-config:

      # 配置MyBatis-Plus操作表的默认前缀

      table-prefix: t_

      # 配置MyBatis-Plus的主键策略,全局件主键设置为自增长策略

      id-type: auto

@TableFiled使用

描述:字段注解(非主键)

举例:

@TableName("sys_user")

public class User {

    @TableId

    private Long id;

    private String name;

    private Integer age;

    private String email;

   @TableField(value="password",exist="false")

    private int password;//在数据库中没有对应的列

}

TableField中的属性

类型

必须指定

默认值

描述

Value

String

""

数据库字段名

Exist

 boolean

 

 true

 是否为数据库表字段

**MyBatis-Plus会自动开启驼峰命名风格映射!!!**

逻辑删除的实现

步骤:

①数据库和实体类添加逻辑删除字段(约定字段值为1时逻辑删除,为0时未逻辑删除)

②在对应删除字段的属性上加一个@TableLogic注解(添加该注解后,我们在做删除操作时mybatis会自定将删除语句改为修改逻辑删除字段的修改语句)

每个表都会有逻辑删除,那么对应的每个表的实体类都会有一个deleted(逻辑删除字段);所以我们可以全局指定,这样就不用在每个表的逻辑删除字段上加@TableLogic注解了

mybatis-plus:

  global-config:

    db-config:

      logic-delete-field: deleted # 全局逻辑删除的实体字段名(属性名)(since 3.3.0,配置后可以忽略不配置步骤2)

      logic-delete-value: 1 # 逻辑已删除值(默认为 1)

      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

代码举例:

public class User {

    private Long id;

    private String name;

    private Integer age;

    private String email;

    /**

     * 当前属性对应的列就是逻辑删除的状态字段,

     * 当删除数据时,自动变为修改此列的属性值,默认0未删除;1删除

     * 当你查询数据的时候,默认只查询delete=0的数据

     */

    //逻辑删除字段

    @TableLogic

    private Integer deleted;

}

乐观锁

思想

乐观锁的基本思想是,认为并发冲突的概率较低,因此不需要提前加锁,而是在数据更新阶段进行冲突检测和处理。乐观锁的核心思想是"先修改,后校验"。在乐观锁的应用中,线程在读取共享资源时不会加锁,而是记录特定的版本信息。

悲观锁的基本思想是,在整个数据访问过程中,将共享资源锁定,以确保其他线程或进程不能同时访问和修改该资源。悲观锁的核心思想是"先保护,再修改"。在悲观锁的应用中,线程在访问共享资源之前会获取到锁,并在整个操作过程中保持锁的状态,阻塞其他线程的访问。

使用乐观锁

启动类

@SpringBootApplication

@MapperScan("com.atguigu.mapper")

public class Main {

    public static void main(String[] args) {

        SpringApplication.run(Main.class,args);

    }

    /**

     * 将mybatis-plus插件导入到ioc容器步骤:

     * ①创建一个方法,在该方法中创建一个装所有插件的对象mybatisPlusInterceptor

     *          在方法中通过该对象添加想要的插件

     * ②返回该对象,同时将该对象加入到ioc容器中

     *

     * 使用乐观锁的步骤:

     * ①导入乐观锁插件(在启动类中)

     * ②在实体类对应乐观锁字段的属性上添加@Version注解

     *     注意:是实体类对应的数据库表也要添加一个乐观锁列

     * ③正常更新使用

     */

    //将mybatis-plus插件导入到ioc容器

    @Bean

    public MybatisPlusInterceptor plusInterceptor(){

        //创建一个mybatis-plus插件集合,所有的插件都集中在此(分页插件,乐观锁插件...)

        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();

        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

        //添加乐观锁(版本号)插件;mybatis-plus会在更新的时候,每次帮我们对比版本号字段和让版本号加1

        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());

        return mybatisPlusInterceptor;

    }

}

实体类

@TableName//可以不加,使用实体类的名字作为表名!忽略大小写

//BaseMapper->User实体类-》实体类名-》表名数据库操作

//当数据库的表名和实体类命名不同(忽略大小写),使用@TableName注解指定表名

public class User {

    private Long id;

    private String name;

    private Integer age;

    private String email;

    /**

     * 当前属性对应的列就是逻辑删除的状态字段,

     * 当删除数据时,自动变为修改此列的属性值,默认0未删除;1删除

     * 当你查询数据的时候,默认只查询delete=0的数据

     */

    //逻辑删除字段

    @TableLogic

    private Integer deleted;

    @Version

    private Integer version;

}

防止全表数据伤处删除与更新 

针对 update delete 语句 作用: 阻止恶意的全表更新删除

添加一个防止全表更新删除的拦截器(也是一个插件)

@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor() {

  MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

  interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());

  return interceptor;

}

}

http://www.dtcms.com/a/402653.html

相关文章:

  • 乐云seo网站建设性价比高wap文字网页游戏
  • 常州网站建设大全古董专家官方网站微信
  • 西宁市网站建设公司推荐莱州相亲网站
  • 检测网站死链wordpress虚拟主机如何安装
  • 公众号做成网站那样怎么做谎称在网站网站做维护
  • 装饰公司网站建设流程做响应式网站的
  • wap网站建设课程要写代码吗五莲县财源建设网站
  • 重庆建设注册执业中心网站网站上的qq咨询怎么做
  • 宁波企业网站seo做外贸怎么推广
  • 网站后门清除深圳工商注册核名查询系统
  • 网站备案完了怎么做韩国网站设计风格
  • 公司网站设计好网站开发的目的实习报告
  • 中文网站模板下载免费网站平台怎么做的
  • 网站类型的销售软件技术培训机构
  • 佛山网站营销推广大连网站建设哪个公司好
  • 深圳网站建设推进Godaddy如何建设网站
  • dedecms做网站教程开发一平方赔多少钱
  • 网站内容建设的原则dedecms 5.7 关闭网站
  • 网站的推广方式有哪些免费网站空间 国外
  • 搭建网站什么意思网站建设的规划
  • 网站开发还找到工作吗爱吧
  • 中国建设银行大学助学贷款网站哈尔滨雕塑制作厂家
  • 游戏网站开发过程青岛网页搜索排名提升
  • 外贸电商怎么做百度荤seo公司
  • 商城的网站建设云南酒店网站建设
  • 做网站每个月可以赚多少钱如何提高网站的访问速度
  • 正规的网站制作服务电话河南今天发生的重大新闻
  • 可以做动图的视频网站重庆设计网站
  • 删除网站备案厦门电子网站建设
  • 阿里巴巴免费做网站吗nginx wordpress php7