mybatisplus如何实现获取信息
通过扫描实体类并通过反射获取实体类信息作为数据库表信息
约定:类名、变量名驼峰转下划线作为表名
id字段默认为主键
常用注解@TableName,@TableId,@TableField
@TableField使用场景:成员变量为boolean并且名称为is开头,转化时会去掉is
比如:private boolean isMarried ====> married
关键字冲突:@TableField("`order`") order
数据库中不存在的字段:@TableField(exist=false)
常用配置
mybatis-plus:
type-aliases-package: com.sky.entity # 包扫描 其实除了这个大部分默认的就行 mapper-locations: classpath:mapper/*.xml # 指定xmlmapper的位置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印日志 map-underscore-to-camel-case: true # 开启下划线和驼峰的映射 global-config: db-config: id-type: auto # id类型:自增/雪花/自填 update-strategy: not_null # 更新策略:只更新非空字段
常用条件构造器:QueryWrapper UpdateWrapper
LambdaQueryWrapper:字段不可以直接写,需要通过反射例如:User类里的id 原本是写"id" 使用后为User::getId
↑优点:避免了硬编码
自定义sql:where条件用mp写,自己定义sql语句中剩下的部分
需在mapper方法参数中用param注解声明wrapper变量名称,必须是ew
@Param("ew")LambdaQueryWrapper<User>wrapper
样例:service---》mapper----》mapper.xml
Integer age=1; LambdaQueryWrapper<Admin>wrapper=new
LambdaQueryWrapper<Admin>().in(Admin::getId); adminMapper.updateAgeById(wrapper,age);
void updateAgeById(@Param("ew") LambdaQueryWrapper<Admin> wrapper,@Param("age") Integer age);
<update id="updateSexById"> UPDATE admin SET age=age-#{age} ${ew.customSqlSegment} </update>
如何使用Iservice
1.在service接口类中继承IService
2.在serviceImpl中继承ServiceImpl<BaseMapper,BaseEntity>,实现service
标签:mapper,TableField,mybatisplus,age,Param,ew,id From: https://www.cnblogs.com/kun1790051360/p/18138763