侧边栏壁纸
博主头像
bayuexunying 博主等级

大道至简,知易行难

  • 累计撰写 22 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

重温Mybatis-plus框架

lty
lty
2024-12-21 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

距离上次用Mybatis以及Mybatis-plus已经是两年前了,但都是培训时候用的,实际工作中主要还是用Jpa + Hibernate,别说Jpa真的很香,不用手动建表,需要加约束,索引什么的直接操作对象即可,永久了真的回不去了,但是对于复杂的查询还是比较吃力,相对于这点Mybatis还是挺不错的,当然主要还是跟上大部队的步伐,同时多学习别的东西未雨绸缪。

因为之前都是用的springboot2.x,这里我创建一个springboot3的项目作为demo尝尝鲜(jdk必须17起步),由于用喜欢了Jpa的自动建表,在用这种半自动框架还得手动建表,非常的不得劲所以我在网上扒拉了某佬一个好用的自动建表工具AUTO TABLE,感觉又回到了Jpa ,这样方便把精力放在业务上面,提升开发效率。

demo仓库地址,这个是我自己搭建的一个gitea仓库如果下载不下来证明被防火墙拦截了,可以下方评论联系 ^ ^。

由于是复习,下面以我个人习惯记录,对于记录不详细,理解不周到还请各位佬批评指导。

1.使用方法

1.1导入依赖

不同springboot版本对应的依赖是不同的,如果版本对应不上可能导致项目起不起来。

<!--Mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.7</version>
        </dependency>

1.2接口继承Basemapper

这里和Jpa差不多都会继承这一个提供基本的增删改查接口

Jpa示例

public interface CourseDao extends JpaRepository<CourseEntity, String>, JpaSpecificationExecutor<CourseEntity> {
   List<CourseEntity> findAllByOwnershipStoreIdAndDeleted(String storeId,Integer deleted);
   List<CourseEntity> findAllByOwnershipStoreIdAndEnableAndDeleted(String storeId,Boolean enable,Integer deleted);
}

Mybatis-plus示例

@Mapper
public interface UserMapper extends BaseMapper<User> {

    @Select("SELECT * FROM user WHERE phone = #{phone}")
    User selectByPhone(String phone;

}

2.常用注解

@TableId 指定表中主键

@TableName(value = "table_name") 指定表名

@TableField(value = "column_name") 指定表中普通字段信息(如果是is开头的字段,一定要使用该注解指定,比如实体里面有个布尔类型的字段IsTrue 如果不指定则其字段名,Mybatis-plus会通过其反射机制处理成true

以上三个是Mybatis-plus注解看了下除了注解字段有区别但是其作用于Jpa都是一样的,下我放上jpa这三个注解对比

@Id 指定表中主键

@Table(name = "table_name") 指定表名

@Column(name = "column_name",length = 32) 指定表中普通字段信息

不难看出还是有Jpa的影子,就好比注册中心eurekanacos等只是换汤不换药。

0
  • 0

评论区