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 自动配置项
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis Plus:中文官网
com.baomidou
mybatis-plus-boot-starter
3.5.1
场景自动导入依赖:
需要操作的对象:对象的属性需要都在数据库中,如果没有则添加注解 @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;
}
@Mapper
public interface UserMapper extends BaseMapper {
}
BaseMapper 中的 crud 方法:
定义接口及其实现类
1.接口继承 IService
public interface UserService extends IService {
}
2.实现类继承 ServiceImpl
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
}
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";
}
}
mapper接口:
xml文件:
1)MybatisPlusAutoConfiguration 配置类,MybatisPlusProperties 配置项绑定。mybatis-plus:xxx 就是对mybatis-plus的定制
2)SqlSessionFactory 自动配置好。底层是容器中默认的数据源
3)mapperLocations 自动配置好的。
有默认值。classpath*:/mapper/**/*.xml;
任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。
建议以后sql映射文件,放在 mapper下
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);
}
}