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

县蒙文网站建设汇报怎么做网站计划

县蒙文网站建设汇报,怎么做网站计划,网站设计公司飞沐,网站的具体内容常用注解 TableName MyBatis-Plus根据BaseMapper中指定的泛型(实体类型名)确定数据库中操作的表,如果根据实体类型名找不到数据库中对应的表则会报表不存在异常 //向表中插入一条数据 Test public void testInsert(){User user new User(null, "张三", 23, "…

常用注解

@TableName

MyBatis-Plus根据BaseMapper中指定的泛型(实体类型名)确定数据库中操作的表,如果根据实体类型名找不到数据库中对应的表则会报表不存在异常

//向表中插入一条数据
@Test
public void testInsert(){User user = new User(null, "张三", 23, "zhangsan@atguigu.com");//INSERT INTO user (id, name, age, email) VALUES ( ?, ?, ?, ? )int result = userMapper.insert(user);System.out.println("受影响行数:"+result);//获取插入数据的主键id为1475754982694199298//MyBatis-Plus在实现插入数据时,如果我们没有指定id,他默认基于雪花算法的策略生成一个id插入到表中System.out.println("id自动获取:"+user.getId());
}

局部配置: 在实体类类型上添加@TableName("t_user")用来设置实体类对应的表名

@Data
@TableName("t_user")
public class User{private Long id;private String name;private Integer age;private String email;public User() {}
}

全局配置: 实际开发中实体类所对应的表都有固定的前缀(例如t_ 或tbl_),可以使用MyBatis-Plus提供的全局配置属性为所有实体类所对应的表名设置默认的前缀

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 设置MyBatis-Plus的全局配置global-config:db-config:# 设置实体类所对应的表的统一前缀table-prefix: t_

@TableId的value和type属性

MyBatis-Plus在实现CRUD时只会将实体类id属性对应的id字段作为主键,也就是说在插入数据时基于雪花算法的策略生成的值只会赋值给表中的id字段

测试将实体类中的id属性改为uid以及表中的id字段也改为uid(此时uid属性对应的uid字段对于MyBatis-Plus来说就是一个普通字段)

//向表中插入一条数据
@Test
public void testInsert(){User user = new User(null, "张三", 23, "zhangsan@atguigu.com");// INSERT INTO user (name, age, email) VALUES ( ?, ?, ?)// uid字段对于MyBatis-Plus来说就是一个普通字段,如果我们没有指定值默认就向数据表插入的就为null// MyBatis-Plus不会基于雪花算法为uid字段赋值int result = userMapper.insert(user);System.out.println("受影响行数:"+result);System.out.println("id自动获取:"+user.getId());
}

在实体类的属性上添加@TableId注解将该属性对应的字段作为主键字段(根据属性名和字段名的映射关系确定对应的字段名)

  • 如果实体类的属性名和数据库中的主键字段名称不同,可以使用@TableId注解的value属性指定作为主键的字段
@Data
public class User {@TableId// 将uid属性对应的uid字段作为主键字段private Long uid;@TableId("uid")//将id属性对应的uid字段作为主键private Long id;private String name;private Integer age;private String email;
}//向表中插入一条数据
@Test
public void testInsert(){User user = new User(null, "张三", 23, "zhangsan@atguigu.com");//INSERT INTO user (uid,name, age, email) VALUES ( ?, ?, ?,?)int result = userMapper.insert(user);System.out.println("受影响行数:"+result);System.out.println("id自动获取:"+user.getId());
}

@TableId的type属性是IdType枚举类型用来设置主键的生成策略

  • 注意主键的生成策略只是辅助,如果我们自己手动给实体类的主键属性设置了值那么主键生成策略就会不起作用
描述
IdType.ASSIGN_ID(默认值)先基于雪花算法的策略生成数据然后为实体类的id属性赋值
此时再向表中插入数据时主键id字段已经有了值,所以即使数据库的id字段设置了自增也不起作用
IdType.AUTO使用数据库主键字段的自增策略即不用给主键字段赋值
不再基于雪花算法为实体类的id属性赋值,此时向数据库中插入数据时id字段没有值所以要求数据库的主键字段必须设置自增属性

局部配置: 在实体类的属性上添加@TableId注解指定type属性设置主键的生成策略

@Data
public class User {@TableId(value="uid",type = IdType.AUTO)private Long id;private String name;private Integer age;private String email;
}
//向表中插入一条数据
@Test
public void testInsert(){User user = new User(null, "张三", 23, "zhangsan@atguigu.com");//INSERT INTO user (name, age, email) VALUES ( ?, ?, ?,?)//采用主键自动递增策略后MyBatis-Plus就不会再通过雪花算法为实体类的id属性赋值然后插入数据库中int result = userMapper.insert(user);System.out.println("受影响行数:"+result);System.out.println("id自动获取:"+user.getId());
}

全局配置: 使用MyBatis-Plus提供的全局配置设置统一的主键生成策略

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 设置MyBatis-Plus的全局配置global-config:db-config:# 设置实体类所对应的表的统一前缀table-prefix: t_# 设置统一的主键生成策略id-type: auto 

@TableField

在实体类属性上使用@TableField,表示当前属性对应的字段为一个普通字段(默认属性名就是表中的字段名)

  • 如果实体类的属性名和表中的字段名不一致,可以使用@TableField的value属性指定属性对应的普通字段名
  • 若实体类中的属性使用的是驼峰命名风格而表中的字段使用的是下划线命名风格, 此时MyBatis-Plus会自动将下划线命名风格转化为驼峰命名风格
@Data
public class User {private Long id;//userName对应的SQL语句INSERT INTO user (id, user_name, age, email ) VALUES ( ?, ?, ?, ? )//name对应的SQL语句INSERT INTO user (id, name, age, email ) VALUES ( ?, ?, ?, ? )@TableField("user_name")private String userName;private Integer age;private String email;
}
//向表中插入一条数据
@Test
public void testInsert(){User user = new User(null, "张三", 23, "zhangsan@atguigu.com");//int result = userMapper.insert(user);System.out.println("受影响行数:"+result);System.out.println("id自动获取:"+user.getId());
}

@TableLogic

数据库表中的删除分为物理删除和逻辑删除两种

  • 物理删除(真删): 将对应数据从数据库中删除,之后在数据库中查询不到此条被删除的数据
  • 逻辑删除(假删): 将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录(可以进行数据恢复)

第一步: 在数据库中创建逻辑删除字段is_deleted并设置默认值为0(0表示该记录处于未删除状态,1表示已删除状态)

在这里插入图片描述

第二步: 在实体类中添加逻辑删除属性

@Data
public class User {@TableId("uid")private Long id;@TableFiled("user_name")private String name;private Integer age;private String email;@TableLogicprivate Integer isDeleted;  
}

第三步测试逻辑删除: 逻辑删除数据后底层真正执行的是修改,查询数据时被逻辑删除的数据默认也不会被查询到

//通过多个id批量删除
@Test
public void testDeleteBatchIds(){List<Long> idList = Arrays.asList(1L, 2L, 3L);//物理删除执行的SQL: DELETE FROM user WHERE uid IN ( ? , ? , ? )//逻辑删除真正执行的是修改: UPDATE t_user SET is_deleted=1 WHERE uid=? AND is_deleted=0int result = userMapper.deleteBatchIds(idList);System.out.println("受影响行数:"+result);
}//查询所有数据,返回一个list集合
@Test
public void testSelectList(){//直接查询:SELECT uid As id,user_name As name,age,email FROM user//查询数据被逻辑删除的数据默认不会被查询:SELECT uid As id,user_name As name,age,email ,is_deleted FROM t_user WHERE is_deleted=0List<User> list = userMapper.selectList(null);list.forEach(System.out::println);
}
http://www.yayakq.cn/news/929039/

相关文章:

  • 南明区住房和城乡建设局网站上杭州做网站设计公司
  • 电子商务网站建设需要做好哪些准备6唐山做网站建设公司
  • 怎么用ps做网站首页图片尺寸接单网app下载安装
  • 制作网站怎么用图片做背景东莞网站设计多少钱
  • 建筑人才网和建筑英才网i猎聘seo建站系统
  • 网站开发维护需要哪些人平陆县做网站
  • 网站建设与设计的心得体会做一款小说网站
  • 石狮市住房和城乡建设局网站网站定制开发 团队
  • 浙江省建设诚信系统网站手机官方
  • 企业网站建设咨询淄博机关建设网站
  • 中国建设人才网信息网站自己做的相册网站
  • 国外免费外贸网站免费域名 主机
  • 做镜像网站违法长沙建站公司哪有
  • 做男女之间的事情的网站百度地图导航2022最新版
  • 网站注册备案天津贝宏建筑工程有限公司
  • 做网站怎么查看来访ip在线ps网页版
  • 国内 ui网站有哪些广西模板厂有哪些厂家
  • 网站做付款页面一般做一个网站多少钱
  • 购物网站开发简介网站侧边 跟随 样式
  • 昆明培训网站建设知名电子商务网站
  • 品牌营销策划网站乐清手机网站
  • 城乡与住房建设部网站首页seo网页优化包括哪些内容
  • 长沙网站设计流程大学生网络营销策划方案书
  • 有做公司网站视频在线制作网站
  • html完整网站开发如何重视企业网站的建设
  • 如何做招聘网站的对比网站建设公司谁家好
  • 哈尔滨seo建站环保局网站建设 自查报告
  • 网站由哪些部分组成部分组成做基金的网站哪个好
  • vps如何搭建网站iis 网站制作
  • 李光辉:营销型企业网站建设的指导思想是什么?网页字体网站