一、整合mybatis
导入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
配置文件
mybatis:
type-aliases-package: com.learning.springboot.pojo
mapper-locations: mapper/*.xml
configuration:
# 下面两行开启延迟加载
aggressive-lazy-loading: false
lazy-loading-enabled: true
# 开启二级缓存
cache-enabled: true
# 驼峰
map-underscore-to-camel-case: true
然后就是编写mapper接口,编写mapper.xml文件,这些都太基础了,就不细说了,自动配置类帮我们创建了SqlSessionFactory、SqlSessionTemplate
如果我们使用了@MapperScan,那么我们就不需要在每个Mapper中使用@Mapper注解了。
二、整合mybatis-plus
基本的增删改查都已经写好了,可以简化我们的开发
基础用法
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
编写一个实体类:
可以自己配置映射名称
@Data
@TableName("user")
public class User02 {
private Integer id;
@TableField("username")
private String name;
private String address;
private String sex;
private Date birthday;
}
继承baseMapper就行了,就有基础的CRUD方法了:
@Mapper
public interface UserMapper02 extends BaseMapper<User02> {
}
@SpringBootTest(classes = Application.class)
public class MybatisPlusTest {
@Autowired
private UserMapper02 userMapper02;
@Test
void test(){
User02 user02 = userMapper02.selectById(41);
System.out.println(user02);
}
}
上面的代码直接就能够查询出结果,很方便,不需要我们写额外的xml了,如果基础的crud不满足条件,我们再自己写xml。
默认mapper文件路径和前缀:
分页查询
添加分页插件:
@Configuration
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor paginationInterceptir(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
return mybatisPlusInterceptor;
}
}
对于service,我们只需要继承ServiceImpl即可:
public interface UserService02 extends IService<User02> {
}
@Service
public class UserService02Impl extends ServiceImpl<UserMapper02, User02> implements UserService02 {
}
这里面帮我们定义了大量的方法:
测试:
@Test
void test02(){
Page<User02> page = new Page<>();
page.setCurrent(1).setSize(2);
Page<User02> page1 = userService02.page(page, null);
// 总页数
System.out.println(page1.getPages());
System.out.println(page1.getRecords());
//总条数
System.out.println(page1.getTotal());
System.out.println(page1);
}
如果我们想要进行条件查询,使用下面的这个对象即可:
注意,如果中文的like查询不出来,可以参考这个文章,设置一下mysql的url:https://blog.csdn.net/qq_37390527/article/details/106028758