SpringBoot 数据访问——整合 MyBatis-Plus

目录

1、MyBatis-Plus 配置

1.1、什么是MyBatis-Plus

1.2、SpringBoot 引入 MyBatis-Plus 开发场景

2、MyBatis-Plus 使用

2.1、Mapper

2.2、Service 层

2.3、Controller层

3、MyBatisX插件

3.1、方便对Mapper接口与xml文件,之间的跳转查看

3.2、插件安装

4、MyBatis-Plus 自动配置项


1、MyBatis-Plus 配置

1.1、什么是MyBatis-Plus

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis Plus:中文官网

1.2、SpringBoot 引入 MyBatis-Plus 开发场景


    com.baomidou
    mybatis-plus-boot-starter
    3.5.1

 场景自动导入依赖:

SpringBoot 数据访问——整合 MyBatis-Plus_第1张图片

2、MyBatis-Plus 使用

需要操作的对象:对象的属性需要都在数据库中,如果没有则添加注解 @TableField(exist = false)

//利用lombok添加get、set方法
@Data
@AllArgsConstructor
@NoArgsConstructor
// MyBatis默认类名即为要操作的表名
// 当类名和表名不一致时,使用该注解标明表名
@TableName("User")
public class User {
    //所有属性都应该在数据库中
    @TableField(exist = false)
    private String userName;
    @TableField(exist = false)
    private String passWord;

    //以下是数据库字段
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

2.1、Mapper

  • 继承 BaseMapper 即可实现对数据库与的 Crud
  • 无需xml文件,书写sql操作
@Mapper
public interface UserMapper extends BaseMapper {

}

 BaseMapper 中的 crud 方法:

SpringBoot 数据访问——整合 MyBatis-Plus_第2张图片

2.2、Service 层

定义接口及其实现类

SpringBoot 数据访问——整合 MyBatis-Plus_第3张图片

 1.接口继承 IService 接口即可

public interface UserService extends IService {
}

 2.实现类继承 ServiceImpl, T>,将Mapper与类相联系

@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

}

2.3、Controller层

 1)装配 UserService 接口

 2)调用 UserService 接口中的方法(删除、查询)

@Controller
public class TableController {

    @Autowired
    UserService userService;

    @GetMapping("basic_table")
    public String basic_table(@RequestParam("email") String email) {
        return "/table/basic_table";
    }

    @GetMapping("user/delete/{id}")
    public String deleteUser(@PathVariable("id") Long id,
                             @RequestParam(value = "pn", defaultValue = "1")Integer pn,
                             RedirectAttributes redirectAttributes) {

        userService.removeById(id);
        redirectAttributes.addAttribute("pn", pn);
        return "redirect:/dynamic_table";
    }

    @GetMapping("dynamic_table")
    public String dynamic_table(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
                                Model model) {

        //从数据库中查出user表中的用户进行展示
        List list = userService.list();

        //分页查询数据
        Page userPage = new Page(pn, 2);

        //分页查询的结果
        Page page = userService.page(userPage, null);
        page.getTotal();
        model.addAttribute("page", page);

        return "/table/dynamic_table";
    }
}

3、MyBatisX插件

3.1、方便对Mapper接口与xml文件,之间的跳转查看

mapper接口:

SpringBoot 数据访问——整合 MyBatis-Plus_第4张图片

 xml文件:

SpringBoot 数据访问——整合 MyBatis-Plus_第5张图片

3.2、插件安装

SpringBoot 数据访问——整合 MyBatis-Plus_第6张图片

4、MyBatis-Plus 自动配置项

1)MybatisPlusAutoConfiguration 配置类,MybatisPlusProperties 配置项绑定。mybatis-plus:xxx 就是对mybatis-plus的定制

2)SqlSessionFactory 自动配置好。底层是容器中默认的数据源

3)mapperLocations 自动配置好的。

        有默认值。classpath*:/mapper/**/*.xml;

        任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。

        建议以后sql映射文件,放在 mapper下

SpringBoot 数据访问——整合 MyBatis-Plus_第7张图片

4) 容器中也自动配置好了 SqlSessionTemplate

5)@Mapper 标注的接口也会被自动扫描;

        可以直接@MapperScan("com.atguigu.admin.mapper") 批量扫描

@MapperScan("com.uclass.thymeleaf.springbootthymeleaf.mapper")
@SpringBootApplication
public class SpringBootThymeleafApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootThymeleafApplication.class, args);
    }

}

你可能感兴趣的:(springboot,spring,boot,web,java,sql)