mybatiPlus踩过的坑

最近在使用mybatisplus的时候遇到了一些小问题,细品了之后发现是来自于对mybatisplus的的不熟悉,所以在这里对部分问题进行回顾

1.在使用内置方法查询数据之后,会返回异常

Error querying database.  Cause: java.sql.SQLSyntaxErrorException: 
Unknown column 'userName' in 'field list'
  • 虽然这个异常已经说得很清楚了,就是表里面没有这个字段,但是我在认真核对了字段以及数据库之后,发现我写的没什么问题,这里就说到第一个注解@TableField,可以看一眼他的部分源码
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableField {
    String value() default "";

    boolean exist() default true;

  • 这两个是我用到的,其他的就不放了,第一个就是value(),他默认值是一个空字符串,代表的是字段值,也就是驼峰命名方式,如果开启了驼峰映射,就不用了再写了,如果没有开启,就要在注解写上映射的数据库字段名,要不然就会报错
  • 第二个是exist,它代表的是该属性是否为数据库表字段, 默认 true 存在,false 不存在

2.id的问题

  • 由于mybatis-plus会自动插入一个id到实体对象, 无论你有没有封装, 所以有时候导致一些意外的情况发生。
public enum IdType {
    AUTO(0),//数据库的自增id
    NONE(1),//该类型为未设置主键类型
    INPUT(2),//用户输入的id
    ASSIGN_ID(3),
    ASSIGN_UUID(4),
    /** @deprecated */
    @Deprecated
    ID_WORKER(3),//全局唯一ID,Long类型的主键
    /** @deprecated */
    @Deprecated
    ID_WORKER_STR(3),//字符串全局唯一ID
    /** @deprecated */
    @Deprecated
    UUID(4);//全局唯一ID,UUID类型的主键

uuid详情

3.映射数据表注解

  • @TableName(“实体类对应得数据表名”),用于在实体类名不同于所映射的数据表时使用,没有特殊情况,建议还是用上

4.mp的基本配置

mybatis-plus:
  #开始实体包路径扫描
  type-aliases-package: com.kkb.bean
  #mapper的配置文件
  mapper-locations: classpath:/mybatis/*.xml
  configuration:
    #是否开启二级缓存
    lazy-loading-enabled: true
    aggressive-lazy-loading: false
    #是否支持驼峰命名法
    map-underscore-to-camel-case: true
    #是否输出sql语句
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

5.基本实现步骤

  • 创建实体类
  • 创建dao层接口,继承BaseMapper<实体类>,并将实体类当做泛型传入,这一步也就是在创建mapper的映射,很关键
  • 创建service层,在实现类中写相应的方法
  • 如果想要进行分页操作,只需要创建对应的分页类,注意要使用@Configuration注解上,在使用MapperScan注解上dao层的包,就可以在方法中直接使用内置分页
@Configuration
@MapperScan("com.kkb.dao")
public class PagerHarperConfig {

    @Bean
    public PageInterceptor pageInterceptor(){
        return new PageInterceptor();
    }
}
  • 最后一步就可以使用了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值