愿你如阳光,明媚不忧伤。
- 1. Mybatis 简介
- 2. Mybatis 的配置
- 3. Mybatis 查询所有数据
- 4. Mybatis 条件查询
1. Mybatis 简介
Mybatis(篱笆墙)是一个持久层框架,是 Apache 下的顶级项目。Mybatis 可以让开发者的主要精力放在 sql 上,通过 Mybatis 提供的映射方式,自由灵活的生成满足需要的 sql 语句。
之前有写过,不再过多介绍 → springMVC + ? 持久化框架的选择(Mybatis 附源码)
2. Mybatis 的配置
- 首先引入 Mybatis 的相关依赖
使用注解非常方便,什么都不用配置,引入依赖即可。
cn.wjee.boot wjee-mybatis-spring-boot-starter 2.1.1.3
3. Mybatis 查询所有数据
数据库创建,实体类创建请参照上面的连接,不再赘述。
- KeKanGroupMapper.java
创建对应数据库的接口,基于注解的整合就不需要 xml 配置文件了。
interface KeKanGroupMapper {
@Select("select * from kekan_group")
List getAllKeKanGroup();
}
- TestController.java
编写测试类
@RestController
@RequestMapping("/test")
public class TestController extends baseController {
@Resource
private KeKanGroupMapper keKanGroupMapper;
@RequestMapping("/mybatis")
public List testMybatis() {
return keKanGroupMapper.getAllKeKanGroup();
}
}
启动项目,会发现报错了。
A component required a bean of type ‘com.example.itgodroad.controller.KeKanGroupMapper’ that could not be found.
原因是Mapper接口没有被Spring管理进来,导致找不到bean。
解决方案一
Mapper接口上添加Mapper注解
@Mapper
interface KeKanGroupMapper {
@Select("select * from kekan_group")
List getAllKeKanGroup();
}
解决方案二(Mapper 多的时候推荐)
启动类上添加MapperScan指定包扫描,我这里仅做测试用,实际要分包,不建议在controller里写Mapper。
@SpringBootApplication
@MapperScan("com.example.itgodroad.controller")
public class ItGodRoadApplication extends SpringBootServletInitializer {
}
浏览器访问:http://localhost:8080/test/mybatis
4. Mybatis 条件查询
- KeKanGroupMapper.java
添加对应方法和参数即可。
@Mapper
interface KeKanGroupMapper {
@Select("select * from kekan_group")
List getAllKeKanGroup();
@Select("select * from kekan_group where id=#{id}")
KeKanGroup getKeKanGroupById(String id);
@Select("select * from kekan_group where id = #{id} and user_name=#{name}")
KeKanGroup getKeKanGroupByIdAndName(@Param("id") String id, @Param("name") String username);
}
- TestController.java
编写测试类
@RestController
@RequestMapping("/test")
public class TestController extends baseController {
@Resource
private KeKanGroupMapper keKanGroupMapper;
@RequestMapping("/mybatis")
public List testMybatis() {
return keKanGroupMapper.getAllKeKanGroup();
}
@RequestMapping("/mybatis/getKeKanGroupById")
public KeKanGroup getKeKanGroupById(String id) {
return keKanGroupMapper.getKeKanGroupById(id);
}
@RequestMapping("/mybatis/getKeKanGroupByIdAndName")
public KeKanGroup getKeKanGroupByIdAndName(String id, String name) {
return keKanGroupMapper.getKeKanGroupByIdAndName(id, name);
}
}
浏览器访问:http://localhost:8080/test/mybatis/getKeKanGroupById?id=20201101
浏览器访问:http://localhost:8080/test/mybatis/getKeKanGroupById?id=20201102&name=布玛



