MyBatisPlus入门详细教程

MyBatisPlus是MyBatis的增强工具,提供了很多便捷的功能,例如自动生成代码、分页查询、乐观锁、逻辑删除等

安装

你可以使用Maven来安装MyBatisPlus依赖。在你的Maven项目中添加以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
</dependency>

配置

数据库连接

在你的application.properties或application.yml文件中添加数据库连接信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

在上述代码中,mybatis_plus_demo是你要使用的数据库名称。

MyBatisPlus配置

在你的application.properties或application.yml文件中添加MyBatisPlus配置:

mybatis-plus:
  # 配置Mapper扫描路径
  mapper-locations: classpath:mapper/*.xml
  # 配置实体类包路径
  typeAliasesPackage: com.example.demo.entity
  # 配置逻辑删除字段
  global-config:
    db-config:
      logic-delete-field: deleted
      logic-delete-value: 1
      logic-not-delete-value: 0

在上述代码中,mapper-locations用于指定Mapper接口的XML文件路径,typeAliasesPackage用于指定实体类的包路径,global-config中的db-config用于配置逻辑删除字段。

代码生成器配置
MyBatisPlus提供了一个代码生成器,可以根据数据库表自动生成实体类、Mapper接口和XML文件。你可以在你的项目中添加一个代码生成器(例如generator包),并在generator包下创建一个GeneratorConfig类:

public class GeneratorConfig {
    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("your name");
        gc.setOpen(false);
        gc.setServiceName("%sService");
        gc.setIdType(IdType.AUTO);
        gc.setBaseResultMap(true);
        gc.setBaseColumnList(true);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.example.demo");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setLogicDeleteFieldName("deleted");
        mpg.setStrategy(strategy);

        // 执行生成
        mpg.execute();
    }
}

在上述代码中,我们使用了AutoGenerator类来生成代码。我们可以通过设置GlobalConfig、DataSourceConfig、PackageConfig和StrategyConfig来配置生成器。

使用

实体类

我们可以使用@TableName注解来指定实体类对应的数据库表名,使用@TableId注解来指定主键生成策略。

@Data
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    @TableLogic
    private Integer deleted;
}

在上述代码中,@TableLogic注解用于指定逻辑删除字段。

Mapper接口

我们可以使用BaseMapper接口提供的方法来进行数据库操作,例如selectById、selectList、insert、updateById和deleteById等。

public interface UserMapper extends BaseMapper<User> {
}

在上述代码中,UserMapper继承了BaseMapper接口,它提供了很多便捷的方法。

Service类

在Service类中,我们可以使用@Autowired注解来注入UserMapper接口,并使用它来进行数据库操作。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getById(Long id) {
        return userMapper.selectById(id);
    }

    public List<User> list() {
        return userMapper.selectList(null);
    }

    public boolean save(User user) {
        return userMapper.insert(user) > 0;
    }

    public boolean update(User user) {
        return userMapper.updateById(user) > 0;
    }

    public boolean removeById(Long id) {
        return userMapper.deleteById(id) > 0;
    }
}

在上述代码中,我们通过@Autowired注解注入了UserMapper接口,并使用它来进行数据库操作。例如,getById方法使用selectById方法查询单个用户,list方法使用selectList方法查询所有用户,save方法使用insert方法插入新用户,update方法使用updateById方法更新用户信息,removeById方法使用deleteById方法删除用户。

Controller类

在Controller类中,我们可以使用@Autowired注解来注入UserService类,并使用它来处理HTTP请求。

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getById(@PathVariable Long id) {
        return userService.getById(id);
    }

    @GetMapping("/")
    public List<User> list() {
        return userService.list();
    }

    @PostMapping("/")
    public boolean save(@RequestBody User user)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 如果你想要入门 MyBatis-Plus,可以按照以下步骤进行: 1. 首先,你需要在你的项目中引入 MyBatis-Plus 的依赖。可以在你的项目的 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 请确保将最新版本号替换为你想要使用的 MyBatis-Plus 版本号。 2. 然后,你需要配置 MyBatis-Plus。你可以在你的项目中创建一个 MyBatisPlusConfig 类,并在该类中注册一些必要的 Bean。例如,如果你想要使用乐观锁插件,你可以在 MyBatisPlusConfig 类中注册一个 OptimisticLockerInterceptor 的 Bean,如下所示: ```java @Configuration public class MyBatisPlusConfig { @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } } ``` 这样就完成了乐观锁插件的注册。 3. 最后,你需要在 MyBatis配置文件中配置 MyBatis-Plus 的一些属性。例如,如果你想要在控制台输出 MyBatis-Plus 的日志,你可以在配置文件中添加以下配置: ``` mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 这样就完成了 MyBatis-Plus入门配置。 总结起来,要入门 MyBatis-Plus,你需要引入依赖、配置 MyBatisPlusConfig 类和配置 MyBatis-Plus 的属性。这样就可以开始使用 MyBatis-Plus 来简化开发和提高效率了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MybatisPlus入门教程](https://blog.csdn.net/qq_44732432/article/details/129221273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一花一world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值