springboot集成mybatisplus实例详解

关于“springboot集成mybatisplus实例详解”的攻略,首先我们需要明确一个事实——mybatisplus 是基于mybatis进行改进的一种ORM(对象关系映射)框架,它能够有效地提高我们开发项目的效率与代码的可维护性。

一、相关依赖引入

  • 首先,我们需要在 pom.xml 文件中添加以下依赖:
<!-- mybatis-plus的核心依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.2.tmp</version>
</dependency>
<!-- 这里使用的是mysql数据库,所以需要添加mysql的依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

二、配置 SQLSessionFactory

  • 首先,我们需要在 application.yml 文件中配置mybatisplus的相关参数:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.pojo
  global-config:
    # 下划线转驼峰
    db-config:
      id-type: auto
      column-underline: true
  • 其中,mybatis-plus 的核心配置项有以下几个:

  • mapper-locations:指定mybatis的mapper.xml文件的位置;

  • type-aliases-package:指定mybatis的model类所在的包路径;
  • global-config:设置一些全局配置,比如主键生成策略等。

在这里,我们使用了默认配置,即自动采用驼峰命名法规则,不需要额外的配置。

  • 然后,在配置完 application.yml 文件后,我们需要在代码中编写 SQLSessionFactory 的配置类,其代码如下所示:
@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

        return interceptor;
    }

    @Bean
    public ISqlInjector sqlInjector() {
        return new DefaultSqlInjector();
    }

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Autowired DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);

        String mapperLocations = "classpath*:mapper/*.xml";
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources(mapperLocations);
        sessionFactory.setMapperLocations(resources);

        // 这里使用的是MybatisSqlSessionFactoryBean,因为要用到MybatisPlusInterceptor这个类
        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource);
        sqlSessionFactory.setPlugins(mybatisPlusInterceptor());

        return sqlSessionFactory.getObject();
    }

}
  • 其中,主要配置如下:

  • sqlSessionFactor:用于配置SQLSessionFactory,它是mybatis的核心类,用于管理所有的Mapper对象和维护与数据库的连接;

  • mapperLocations:指定Mapper XML文件所在的包路径。
  • MybatisPlusInterceptor:mybatis-plus提供的拦截器,用于在SQL执行前/后进行一些特殊的处理。

三、添加Mapper和Service

  • 在添加 Mapper 类之前,我们需要先添加一个对应的Pojo类,它将作为Mapper类映射的Java对象。如下所示:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Integer id;
    private String name;
    private Integer age;
    private String email;

}
  • 接下来,我们在 mybatis-plus 中添加一个Mapper类,用于对数据库进行增删改查操作:
@Repository
public interface UserMapper extends BaseMapper<User> {

}
  • 然后,我们添加一个Service类(也就是服务层),它用于实现具体的业务逻辑:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    private final UserMapper userMapper;

    @Autowired
    public UserServiceImpl(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @Override
    public List<User> queryAllUsers() {
        return userMapper.selectList(null);
    }

    @Override
    public User queryUserById(Integer id) {
        return userMapper.selectById(id);
    }

    @Override
    public void addUser(User user) {
        userMapper.insert(user);
    }

    @Override
    public void updateUser(User user) {
        userMapper.updateById(user);
    }

    @Override
    public void deleteUser(Integer id) {
        userMapper.deleteById(id);
    }
}

在这个类里面,我们实现了UserMapper接口中定义的增删改查方法,其中,ServiceImpl 是mybatis-plus提供的一个 BaseService 实现,用于简化Service的编写过程,而 @Service 注解则表示这是一个服务层的类。

四、示例代码演示

接下来,我们来演示一下使用 mybatis-plus 在 SpringBoot 中访问mysql数据库的正确姿势。首先,我们分别编写控制器和视图层,实现对数据库表的增删改查操作。

示例1:添加用户

  • 用户在界面上输入信息后,传递给后端请求的 URL 如下:
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public ModelAndView addUser(@ModelAttribute User user) {
    userService.addUser(user);
    return listUsers();
}
  • 在后端,我们通过 UserService 的实现类,调用 addUser() 函数,将获取到的user对象添加至数据库,代码如下:
@Override
public void addUser(User user) {
    userMapper.insert(user);
}

示例2:查询用户

  • 用户进入查询界面,请求的 URL 如下:
@RequestMapping(value = "/listUsers", method = RequestMethod.GET)
public ModelAndView listUsers() {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("userList");
    modelAndView.addObject("userList", userService.queryAllUsers());
    return modelAndView;
}

在后端,我们通过 UserService 的queryAllUsers()函数获取到已有的所有用户,并将其保存在 ModelAndView 对象中,代码如下所示:

@Override
public List<User> queryAllUsers() {
    return userMapper.selectList(null);
}

最后,在前端界面,我们使用 Thymeleaf 模板引擎来实现查询结果表格的展示,代码如下:

<table>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
        <th>Email</th>
    </tr>
    <tr th:each="user : ${userList}">
        <td th:text="${user.id}"></td>
        <td th:text="${user.name}"></td>
        <td th:text="${user.age}"></td>
        <td th:text="${user.email}"></td>
    </tr>
</table>

至此,我们就成功的实现了在 SpringBoot 中使用 mybatis-plus 访问 mysql 数据库的全过程。

总结

本篇文章详细介绍了mybatis-plus在SpringBoot中的集成方法,并通过实例代码演示,让大家了解到如何通过mabatis-plus进行数据库增删改查操作。在实战中,掌握好mybatis-plus,能够让我们更快地进行Java Web项目开发,提升开发效率和代码质量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot集成mybatisplus实例详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    在JSP中通过Servlet展示服务器硬盘上的图片,可以按照以下步骤来实现: 在web.xml文件中配置servlet 在web.xml文件中配置servlet,将servlet的访问路径配置为“/image”,并将servlet的类名配置为“com.example.ImageServlet”。 示例代码: <servlet> <servl…

    Java 2023年6月15日
    00
  • Maven聚合开发实例详解

    Maven聚合开发实例详解 Maven是一个Java项目管理工具,可以自动构建项目,管理依赖关系等。它提供了聚合开发的功能,可以将多个小项目或模块组合成一个大项目。 本文将详细讲解Maven聚合开发的实例,包括以下内容: 聚合模块的创建 聚合模块的配置 子模块的创建 子模块的依赖配置 打包和部署 聚合模块的创建 首先,我们需要创建一个聚合模块作为我们的项目根…

    Java 2023年6月15日
    00
  • JSP实现客户信息管理系统

    下面是“JSP实现客户信息管理系统”的完整攻略: 1. 设计数据库 首先需要设计数据库,数据库中应包含客户信息的各种属性,例如客户编号(id)、姓名(name)、性别(gender)、年龄(age)、联系方式(phone)等等。 2. 搭建环境 安装JDK、IDE和Tomcat服务器。在IDE中创建一个Web项目,使用Maven来管理项目依赖。在项目中依次创…

    Java 2023年6月15日
    00
  • 详解Ubuntu下安装和配置Apache2

    下面是详解Ubuntu下安装和配置Apache2的完整攻略步骤: 1. 安装Apache2 Ubuntu上安装Apache2十分简单,只需要在终端中运行以下命令即可: sudo apt-get update sudo apt-get install apache2 2. 启动Apache2服务 安装完成后,需要将Apache2服务启动才能访问。运行以下命令启…

    Java 2023年5月19日
    00
  • 颜值与实用性并存的数据库建模工具Chiner教程

    颜值与实用性并存的数据库建模工具Chiner教程 Chiner是一款同时具有出色颜值与实用性的数据库建模工具,支持多种数据库平台。以下是使用Chiner进行数据库建模的完整攻略。 步骤一:安装Chiner 首先,需要前往Chiner的官方网站下载Chiner安装包,并按照提示进行安装。也可以使用以下命令安装: npm install -g chiner 步骤…

    Java 2023年5月19日
    00
  • Java匿名对象与匿名内部类

    Java匿名对象与匿名内部类攻略 在Java中,匿名对象和匿名内部类都是比较常见的语法特性。这些特性可以帮助我们更加方便地编写Java程序,提高代码的可重用性和可维护性。在本文中,我们将详细讨论Java匿名对象和匿名内部类,并给出一些示例说明,帮助大家更好地理解这些概念。 Java匿名对象 在Java中,我们可以使用对象的匿名形式来创建对象。所谓匿名对象,就…

    Java 2023年5月26日
    00
  • java中List集合及其实现类的方法详解

    Java中List集合及其实现类的方法详解 什么是List集合? List集合是Java中最常用的集合之一,它可以存储有序、可重复的数据。 List实现类 Java中常见的List实现类有3种: ArrayList LinkedList Vector 其中,Vector常用于多线程并发访问的场景中,由于其性能较慢,因此本文不再赘述。下面详细讲解ArrayLi…

    Java 2023年5月18日
    00
  • 基于Lombok集成springboot遇到的坑

    好的。首先,Lombok是一款Java的插件工具库,它可以简化Java代码的编写,减少代码的重复,提高开发效率。Spring Boot是一款基于Spring框架的快速开发框架,在实现快速开发的同时也减少了很多繁琐的配置工作。将Lombok和Spring Boot进行集成,可以更快速地开发出高质量的Java应用。 但是,在集成Lombok和Spring Boo…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部