@Datapublic static class DbConfig { /** * 主键类型 */ private IdType idType = IdType.ASSIGN_ID;}

文章插图
在源码中找到这样一段配置,说明MyBatisPlus默认的主键策略是 分配ID ,所以我们需要将其配置为主键自增:
mybatis-plus: global-config: db-config: id-type: auto
文章插图
表名的映射也可以进行全局配置:
mybatis-plus: global-config: db-config: id-type: auto table-prefix: tbl_
文章插图
此时就可以将实体类上的@TableId和@TableName注解去掉了 。
驼峰命名映射只能解决诸如lastName和last_name的映射关系,当两者差别过大时,比如:lastName和name,此时我们需要使用@TableField注解来解决:
@TableField(value = "name")private String lastName;
文章插图
但通常情况下数据表的列名和实体类的属性名一定是驼峰命名映射或者完全相同的,所以该注解一般用于另外一种场景,即:当前实体类中有些属性在数据表中是不存在的,此时就会出现异常,而@TableField注解能够通过属性设置来声明某个属性是数据表中不存在的属性,这样MyBatisPlus在生成sql语句时就不会带上它:
@TableField(exist = false)private Integer salary;
文章插图
更新更新操作也非常简单,直接调用自动生成的方法即可:
@Autowiredprivate EmployeeMapper employeeMapper;@Testvoid contextLoads() { Employee employee = new Employee(5,"bbb","bbb@qq.com",1,30,3000); employeeMapper.updateById(employee);}
文章插图
该方法是根据id进行员工信息的更新,所以id属性不能为空,而且它会根据属性是否为空动态生成sql,即:只更新不为空的属性值 。
查询查询是最为频繁的操作,故提供的查询方法也最多,先来看看selectById方法:
@Autowiredprivate EmployeeMapper employeeMapper;@Testvoid contextLoads() { Employee employee = employeeMapper.selectById(1); System.out.println(employee);}
文章插图
该方法通过id值查询员工信息 。然后是selectBatchIds方法:
@Autowiredprivate EmployeeMapper employeeMapper;@Testvoid contextLoads() { List<Employee> emps = employeeMapper.selectBatchIds(Arrays.asList(1, 2, 3)); for (Employee emp : emps) { System.out.println(emp); }}
文章插图
该方法是批量查询方法,通过一个id的集合查询这些id的所属员工信息 。selectByMap方法:
@Autowiredprivate EmployeeMapper employeeMapper;@Testvoid contextLoads() { Map<String,Object> map = new HashMap<>(); map.put("last_name","tom"); map.put("gender",1); List<Employee> emps = employeeMapper.selectByMap(map); for (Employee emp : emps) { System.out.println(emp); }}
文章插图
该方法仍然是一个批量查询,通过Map封装查询条件,需要注意Map中的键为数据表中的字段名而非实体类中的属性名 。
推荐阅读
- 金丝玫瑰茶烟,茶烟怎么样好吸么
- 红菊花茶,菊花茶的作用有哪些
- Java并发工具类的简单使用
- vscode 前端常用插件推荐
- 一些不好记却很好用的 CSS 属性
- Redis在用户注册登录的妙用
- 诸葛亮用了多少艘船,草船借箭是周瑜还是诸葛亮
- 通用的底层埋点都是怎么做的?
- 免费供苗种植回收,投资成本(不含土地承包费用
- 坝上金莲花颗粒副作用,金莲花的副作用
