SpringBoot --- 集成 mybatis-plus 完整步骤

小编最近工作项目里面用到了 mybatis-plus,比自己手写sql,方便太多。
比较之前项目的 mybatis,也快捷不少。这里总结了一下,springboot 集成 mybatis-plus,
完整步骤。
1,添加 mybatis-plus-extension依赖。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>3.2.0</version>
</dependency>

2,application.properties 文件中,新增数据库连接信息。

spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521/SECRETARYDB
spring.datasource.username=admin
spring.datasource.password=123456
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

3,编写mybatisplus数据源及包扫描配置文件,这一步也是集成mybatis的核心步骤,
通过配置文件,将用户从原始的jdbc访问中解放出来,用户只需要定义操作的sql语句,
无须关注底层的jdbc操作,通过面向对象的方式进行持久化操作。
mybatis中常见的对象有 SqlSessionFactory和SqlSession。

@Configuration
@MapperScan(basePackages = MybatisPlusDataSourceConfig.PACKAGE_DAO, sqlSessionFactoryRef = "sqlSessionFactory")
public class MybatisPlusDataSourceConfig {

    // dao层所在路径
    static final String PACKAGE_DAO = "com.cmbchina.mapper";
    // *mapper.xml文件所在路径
    static final String MAPPER_LOCATION = "classpath:mybatis/mapper/*.xml";

    //Mybatis 插件扩展
    @Autowired
    private MybatisPlusConfig plusConfig;

    @Bean("dataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;
    }

    @Bean("sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
        final MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        
        MybatisConfiguration configuration = new MybatisConfiguration();
        configuration.setJdbcTypeForNull(JdbcType.NULL);
        configuration.setMapUnderscoreToCamelCase(true);
        configuration.setCacheEnabled(false);
        configuration.setLogImpl(StdOutImpl.class);
        
        sessionFactoryBean.setPlugins(new Interceptor[]{plusConfig.paginationInterceptor()}); //Mybatis 插件扩展
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources(MybatisPlusDataSourceConfig.MAPPER_LOCATION));
        return sessionFactoryBean.getObject();
    }
}
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {

    /**
     * 注册分页插件
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    /**
     * 注册乐观锁插件
     * 取出记录时,获取当前version
     * 更新时,带上这个version
     * 执行更新时, set version = yourVersion+1 where version = yourVersion
     * 如果version不对,就更新失败
     * @return
     */
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }
	
    /**
     * 注册主键生成策略
     * @return
     */
    @Bean
    public OracleKeyGenerator oracleKeyGenerator(){
        return new OracleKeyGenerator();
    }
}

4,编写entity,实现Serializable接口(方便序列化和反序列化),
声明 serialVersionUID(保证反序列化不会出现异常)
COXDBO.BILL_CONFIG 是查询数据所有数据库下具体表格。

@TableName("COXDBO.BILL_CONFIG")
public class SwitchConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "OWNER_APP", type = IdType.INPUT)
    private String ownerApp;
    @TableId(value = "CONFIG_KEY", type = IdType.INPUT)
    private String configKey;
    private String configValue;
    private String remark;
    private String runtimeConfig;
    //todo... get set 方法省略。。。
}

5,编写mapper层,继承BaseMapper。

@Mapper
@Repository
public interface MyBatisPlusMapper extends BaseMapper<SwitchConfig> {}

6,编写xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmbchina.mapper.MyBatisPlusMapper">
</mapper>

7,编写service层,继承IService。

public interface MyBatisPlusService extends IService<SwitchConfig> {}

8,编写serviceImpl层,实现service层,继承ServiceImpl。

@Service
@Transactional(rollbackFor = Exception.class)
public class MyBatisPlusServiceImpl extends ServiceImpl<MyBatisPlusMapper, SwitchConfig> implements MyBatisPlusService {}

9,编写controller层。

@Api(tags = "测试mybatisplus接口 API")
@RestController
@RequestMapping("/mybatisTest")
public class MyBatisPlusController {

    @Resource
    private MyBatisPlusService myBatisPlusService;

    @ApiOperation("获取列表数据")
    @PostMapping("/getList")
    public List<SwitchConfig> getById() {
        /**
         * QueryWrapper 包含基本的sql 查询语句,解放了程序员的基础繁琐任务
         * 如果需要分页查询,可以使用 Page IPage 配合使用
         * Page<EventCurrent> page = new Page<EventCurrent>();
         *         page.setCurrent(start);
         *         page.setSize(limit);
         *         
         * IPage<EventCurrent> iPage = eventCurrentService.page(page,wrapper);
         */
        QueryWrapper<SwitchConfig> wrapper = new QueryWrapper<SwitchConfig>();
        List<SwitchConfig> list = myBatisPlusService.list(wrapper);
        return list;
    }
}

10,测试结果,浏览器输入: http://localhost:8080/mybatisTest/getList 即可调用接口,查询数据。
即可。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 是一个开源的 Java 开发框架,而 MyBatis-Plus 是一个基于 MyBatis 的增强工具库。MyBatis-Plus 提供了很多便捷的功能,使得与数据库的交互更加简单和高效。 要集成 Spring BootMyBatis-Plus,可以按照以下步骤进行: 1. 添加依赖:在项目的 pom.xml 文件中添加 Spring BootMyBatis-Plus 的依赖。通常可以在 Maven 中央仓库找到它们的最新版本。 2. 配置数据源:在 application.properties 或 application.yml 文件中配置数据库连接信息,包括数据库 URL、用户名、密码等。 3. 创建实体类:根据需要创建与数据库表相对应的实体类。可以使用注解来标识实体类与数据表的映射关系。 4. 创建 Mapper 接口:创建与实体类对应的 Mapper 接口,用于定义数据库操作的方法。可以使用 MyBatis-Plus 提供的通用 CRUD 方法,也可以根据需求自定义方法。 5. 创建 Service 类:创建 Service 类,用于封装业务逻辑并调用 Mapper 接口中的方法。可以使用注解来标识 Service 类的角色,如 @Service。 6. 配置文件:在 Spring Boot 的配置类中配置 MyBatis-Plus 的相关配置。可以设置数据源、Mapper 扫描路径等。 7. 启动应用程序:根据需要,可以创建一个启动类并添加 @SpringBootApplication 注解。使用 Spring Boot 提供的内嵌容器启动应用程序。 通过以上步骤,就可以完成 Spring BootMyBatis-Plus集成。使用 MyBatis-Plus 提供的丰富功能,可以简化数据库操作,提高开发效率。这个集成方案可以在大多数使用 Spring Boot 的项目中使用,使得与数据库的交互更加方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮克克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值