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日

相关文章

  • Java中程序的运行全过程

    Java程序的运行过程可以分为三个主要阶段,即编写代码、编译代码和执行代码。下面是详细的攻略: 编写Java代码 Java程序的编写是使用文本编辑器,如记事本或文本编辑器进行编写。在编写代码时,需要使用Java编程语言,这是一种高级编程语言,易于理解和学习。Java编程语言的基本语法包括使用关键字、变量、运算符、分号、大括号等,例如: public clas…

    Java 2023年5月19日
    00
  • SpringBoot登录用户权限拦截器

    下面是详细讲解“SpringBoot登录用户权限拦截器”的完整攻略: 什么是SpringBoot登录用户权限拦截器 SpringBoot登录用户权限拦截器主要用于过滤用户请求并确保只有已经登录并拥有相应权限的用户才能够访问特定的资源。在Web应用程序中,用户必须先经过身份验证和授权才能访问特定的页面或资源。因此,SpringBoot登录用户权限拦截器提供了一…

    Java 2023年6月3日
    00
  • 微信小程序实现电子签名

    当涉及到微信小程序实现电子签名时,你需要考虑的几个方面包括: 1.实现方式:使用canvas绘制签名区域并导出图片保存。2.显示签名:使用Image组件或canvas绘制签名。3.文档验证:签名本身并不具有验证功能,需要合适的过程和算法确保签名的安全性。 接下来,我将详细讲解实现电子签名的完整攻略。 步骤1:创建签名区域 要在小程序中实现签名,你需要在页面上…

    Java 2023年5月23日
    00
  • Java 实现简单Socket 通信的示例

    Java 实现简单 Socket 通信的示例 简介 Socket 是实现网络编程的一种工具,它能够通过网络连接实现两台计算机之间的数据传输。在 Java 中,可以通过使用 Socket 类和 ServerSocket 类来简单地实现 Socket 通信。 示例 1:Socket 客户端 import java.io.IOException; import j…

    Java 2023年5月19日
    00
  • Spring如何集成ibatis项目并实现dao层基类封装

    下面就是详细讲解“Spring如何集成ibatis项目并实现dao层基类封装”的完整攻略。 目录 Spring和iBatis的集成 示例一:使用iBatis进行单表操作 示例二:使用iBatis进行多表操作 Dao层基类封装 Spring和iBatis的集成 Spring和iBatis的集成需要以下几个步骤: 引入Spring和iBatis相关的jar包 配…

    Java 2023年5月20日
    00
  • 基于maven搭建一个ssm的web项目的详细图文教程

    下面是基于Maven搭建SSM(Web)项目的详细攻略: 前置条件 JDK 1.8+ 安装并配置好环境变量 Maven 安装并配置好环境变量 IDE,比如 IntelliJ IDEA 或 Eclipse 等可选 步骤一:创建Maven项目 打开IDE,选择创建Maven项目 选择Maven-archetype-webapp模板,输入项目信息,点击创建 步骤二…

    Java 2023年5月19日
    00
  • 基于javaMybatis存进时间戳的问题

    那我来详细讲解一下关于“基于Java Mybatis存进时间戳的问题”的攻略。 问题背景 在使用Java Mybatis框架进行MySQL数据库操作时,我们有时需要将时间信息存储为时间戳(长整型),然后进行操作。但在实际操作中,我们有可能遇到时间戳值存储不对的问题,导致数据不正确。 解决方案 方案1:使用注解方式进行时间戳的映射 在Mybatis的实体映射中…

    Java 2023年5月20日
    00
  • MyBatis动态SQL标签用法实例详解

    MyBatis动态SQL标签用法实例详解 本文介绍了MyBatis中动态SQL标签的用法及示例。动态SQL标签允许我们根据不同的条件动态生成SQL语句,让SQL语句变得更加灵活和通用。下面分别介绍了if、choose、foreach、when、otherwise五种常用的动态SQL标签。 if标签 if标签可以根据条件判断是否要拼接SQL语句。示例代码如下:…

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