MyBatis 及 MyBatis Plus 纯注解方式配置(Spring Boot + Postgresql)

说明

当前的版本为

  • MyBatis 3.5.9
  • MyBatis Plus 3.5.1
  • Spring Boot 2.6.4
  • Postgresql 42.3.3

与 Spring Boot 结合使用 MyBatis

以下说明Spring Boot下完全以注解方式进行的配置, 覆盖大部分功能场景

项目依赖

需要以下的依赖, 版本由Spring Boot指定, 或者参考上面的版本号

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

配置

1.增加 MapperScan 注解

这个注解可以和@SpringBootApplication放在一起, 也可以放在单独的一个 @Configuration

@SpringBootApplication
@MapperScan(basePackages = "com.yourdomain.demo.commons.impl.mapper")
public class CommonsBoot {
    public static void main(String[] args) {
        SpringApplication.run(CommonsBoot.class, args);
    }
}

2. 准备POJO(PO或者DTO)

public class RoleItemDTO {
    private Integer id;
    private int roleId;
    private int itemId;
    private Date createTime;

    // getters and setters
    // ...
}

3. 准备Mapper

Mapper必须位于 @MapperScan 指定的包路径, 其中 @Repository 用于指定 Bean 名称, 内部用 @Select @Update @Delete @Insert 等编写对应操作的SQL

@Repository("roleItemMapper")
public interface RoleItemMapper {

    @Select("SELECT * FROM test_role_item WHERE role_id = #{roleId}")
    List<RoleItemDTO> listByRoleId(@Param("roleId") int roleId);
}

4. 调用

测试用例

@ExtendWith(SpringExtension.class)
@SpringBootTest
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class RoleItemTest {
    private static final Logger log = LoggerFactory.getLogger(RoleItemTest.class);

    @Resource
    private RoleItemMapper roleItemMapper;

    @Test
    @Order(1)
    void insert() {
        RoleItemDTO rc = new RoleItemDTO();
        rc.setItemId(1);
        rc.setRoleId(2);
        rc.setCreateTime(new Date());
        Assertions.assertThat(roleItemMapper.insert(rc)).isEqualTo(1);
        List<RoleItemDTO> dummies = roleItemMapper.listByRoleId(2);
        log.info(JacksonUtil.compress(dummies));
        Assertions.assertThat(dummies).isNotNull();

    }
}

注解使用

典型用例

public interface VillageMapper {
    @R
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot + MyBatis可以通过注解和自动配置来简化SSM框架的配置,具体步骤如下: 1. 引入依赖:在pom.xml文件中添加Spring BootMyBatis的依赖,例如: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> ``` 2. 配置数据源:在application.properties或application.yml文件中配置数据源,例如: ``` spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root ``` 3. 配置MyBatis:在启动类中添加@MapperScan注解,指定Mapper接口所在的包路径,例如: ``` @SpringBootApplication @MapperScan("com.example.demo.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 4. 编写Mapper接口和Mapper XML文件:在Mapper接口中添加@Mapper注解,编写SQL语句,在Mapper XML文件中配置SQL语句和结果映射,例如: ``` @Mapper public interface UserMapper { @Select("select * from user") List<User> findAll(); } ``` ``` <select id="findAll" resultType="com.example.demo.pojo.User"> select * from user </select> ``` 通过以上配置,就可以实现Spring Boot + MyBatis的简化SSM框架。在以上配置中,Spring Boot提供了自动配置和默认配置,可以省去很多繁琐的配置工作,同时还可以提高开发效率和代码可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值