springboot项目中引入mybatis plus

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: springboot项目中引入mybatis plus

公众号merlinsea


mybatis plus的介绍



  • 官⽹ https://baomidou.com/ 
  • 是⼀个 Mybatis 的增强⼯具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提⾼效率⽽⽣。
  • 是怎么增强的呢?mybatis plus已经封装好了⼀些crud⽅法,我们不需要再像mybatis这样编写xml了,直接调⽤这些⽅法就⾏,类似JPA但优于JPA。

第一步:准备工作



1、pom文件中引入依赖【数据库依赖和mybatis plus依赖】


<!--引入数据库依赖--><dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId></dependency>
<!--mybatis plus和springboot整合--><dependency>   <groupId>com.baomidou</groupId>   <artifactId>mybatis-plus-boot-starter</artifactId>   <version>3.4.1</version></dependency>


2、在application.properties中添加数据库连接信息


【核心是 :数据库连接驱动+地址+库名+账号+密码】


#==============================数据库相关配置========================================spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/shop?useUnicode=true&characterEncoding=utf-8&useSSL=falsespring.datasource.username =rootspring.datasource.password =mysqlroot
#配置mybatis plus打印sql日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl


3、启动类上添加 @MapperScan("org.example.shopmanager.mapper")


@SpringBootApplication//org.example.shopmanager.mapper用于存放数据库表的实体类的包@MapperScan("org.example.shopmanager.mapper")public class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}


第二步、编写model-mapper-service-controller层



1、model层【对应数据库表的DO实体类】


   注释:通过配置文件引入了数据库shop,配合mybatis plus 的TableName(),得出BannerDO类映射到shop数据库下的banner表。


/**
 * @TableName 表示这个实体类映射数据库中的表名
 **/
@Data
@TableName("banner")//表名映射
public class BannerDO {
    private Integer id;
    private String img;
    private String url;
    private Integer weight;
}


2、mapper层【数据库访问层】


注释:

  • 接口,反射的方式调用,继承BaseMapper<BannerDO>,BaseMapper<BannerDO>中提供了很多数据库的增删改查方法,直接调用即可
  • mapper层可以不加@Mapper注解,因为启动类上加了@MapperScan("org.example.shopmanager.mapper")包扫描路径,如果启动类没加

mapper包扫描路径,则需要在mapper层添加@Mapper注解。


/**
 * BannerMapper需要继承BaseMapper<BannerDO>接口
 */
public interface BannerMapper extends BaseMapper<BannerDO> {
}


3、service层【业务逻辑层】


注释:通过java反射技术持有mapper数据库访问层的对象,然后执行业务操作。


/**
 * list列出所有的Banner轮播图
 **/
@Service
public class BannerServiceImpl implements BannerService {
    @Autowired
    private BannerMapper bannerMapper;
    //列出所有的BannerDO信息
    @Override
    public List<BannerDO> list() {
        return bannerMapper.selectList(new QueryWrapper<>());
    }
}


4、controller层【提供外界访问】


@RestController
@RequestMapping("api/v1/banner")
public class BannerController {
    @Autowired
    private BannerService bannerService;
    @RequestMapping("list")
    public JsonData list(){
        List<BannerDO> list = bannerService.list();
        return JsonData.buildSuccess(list);
    }
}


在外界浏览器中输入:http://localhost:8080/api/v1/banner/list 触发整个链路

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
41 4
|
26天前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
39 3
|
1月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
104 1
SpringBoot获取项目文件的绝对路径和相对路径
|
1月前
|
Java 数据库连接 数据库
spring和Mybatis的逆向工程
通过本文的介绍,我们了解了如何使用Spring和MyBatis进行逆向工程,包括环境配置、MyBatis Generator配置、Spring和MyBatis整合以及业务逻辑的编写。逆向工程极大地提高了开发效率,减少了重复劳动,保证了代码的一致性和可维护性。希望这篇文章能帮助你在项目中高效地使用Spring和MyBatis。
23 1
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
57 8
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
44 2
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
58 2
|
1月前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
77 2
|
1月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
53 1
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。