mybatis-plus与mybatis共存的实现

要实现MyBatis-Plus与MyBatis的共存,需要注意一些配置和使用方式方面的细节。下面是实现步骤的详细攻略:

  1. 引入MyBatis-Plus和MyBatis的依赖包。在pom.xml中添加以下依赖:

```xml


com.baomidou
mybatis-plus-boot-starter
最新版本


org.mybatis.spring.boot
mybatis-spring-boot-starter
最新版本

```

  1. 配置MyBatis-Plus的相关参数。在application.yml或application.properties中添加以下配置:

yaml
mybatis-plus:
mapper-locations: classpath:mapper/*.xml # mapper文件路径
typeAliasesPackage: 包路径 # 实体类路径

Mapper文件夹下需要分别存放MyBatis和MyBatis-Plus相应的Mapper文件,例如:

mapper
├── mybatis
| └── UserMapper.xml
└── plus
└── UserPlusMapper.xml

  1. 在代码中使用MyBatis和MyBatis-Plus。例如,在同一个Service类中定义两个Mapper变量并注入:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

@Service
@Transactional
public class UserService extends ServiceImpl {

   @Autowired
   private UserMapper userMapper;

   @Autowired
   private UserPlusMapper userPlusMapper;

   // MyBatis的调用方式
   public User queryUserById(Long id) {
       return userMapper.selectByPrimaryKey(id);
   }

   // MyBatis-Plus的调用方式
   public User queryUserByName(String name) {
       return this.getOne(new QueryWrapper<User>().eq("name", name));
   }

}
```

在上面的例子中,UserMapper和UserPlusMapper分别对应MyBatis和MyBatis-Plus的Mapper文件,可以根据需要调用对应的方法。

另外,可以在MyBatis-Plus的Mapper文件中使用MyBatis的标签和语法,例如:

```xml

   <select id="queryUserById" resultType="com.example.entity.User">
       SELECT * FROM user WHERE id = #{id}
   </select>

```

在这个例子中,使用了MyBatis的语法来查询数据,同时在方法中调用MyBatis-Plus的getOne方法来获取该记录。

以上就是实现MyBatis-Plus与MyBatis共存的完整攻略,下面给出另一个示例来帮助更好地理解:

  1. 首先在pom.xml中引入MyBatis-Plus和MyBatis的依赖包。依赖与之前相同,这里略去。

  2. 在application.yml或application.properties中添加以下MyBatis-Plus的配置:

yaml
mybatis-plus:
mapper-locations: classpath:mapper/*.xml # mapper文件路径
typeAliasesPackage: 包路径 # 实体类路径

  1. 在代码中定义两个Mapper变量,一个使用MyBatis,一个使用MyBatis-Plus,分别实现对同一个实体类的CRUD操作:

```java
import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

@Service
@Transactional
public class UserService extends ServiceImpl {

   @Autowired
   private UserMapper userMapper;

   @Autowired
   private UserMyBatisPlusMapper userMyBatisPlusMapper;

   // MyBatis的调用方式
   public User queryUserByIdMyBatis(Long id) {
       return userMapper.selectByPrimaryKey(id);
   }

   // MyBatis-Plus的调用方式
   public User queryUserByIdMyBatisPlus(Long id) {
       return userMyBatisPlusMapper.selectById(id);
   }

   // MyBatis的调用方式
   public List<User> queryAllMyBatis() {
       return userMapper.selectAll();
   }

   // MyBatis-Plus的调用方式
   public List<User> queryAllMyBatisPlus() {
       return this.list();
   }

   // MyBatis的调用方式
   public int createUserMyBatis(User user) {
       return userMapper.insert(user);
   }

   // MyBatis-Plus的调用方式
   public boolean createUserMyBatisPlus(User user) {
       return this.save(user);
   }

   // MyBatis的调用方式
   public int updateUserMyBatis(User user) {
       return userMapper.updateByPrimaryKey(user);
   }

   // MyBatis-Plus的调用方式
   public boolean updateUserMyBatisPlus(User user) {
       return this.updateById(user);
   }

   // MyBatis的调用方式
   public int deleteUserMyBatis(Long id) {
       return userMapper.deleteByPrimaryKey(id);
   }

   // MyBatis-Plus的调用方式
   public boolean deleteUserMyBatisPlus(Long id) {
       return this.removeById(id);
   }

}
```

在上面的例子中,UserMapper对应MyBatis的Mapper文件,UserMyBatisPlusMapper对应MyBatis-Plus的Mapper文件,同样的实体类User可以被这两个Mapper文件所操作。

  1. 在MyBatis-Plus的Mapper文件中,可以使用MyBatis的标签和语法来进行查询和修改,例如:

```xml

   <select id="queryUserByNameMyBatis" resultType="com.example.entity.User">
       SELECT * FROM user WHERE name = #{name}
   </select>

   <update id="updateUserMyBatis" parameterType="com.example.entity.User">
       UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
   </update>

```

在这个例子中,使用了MyBatis的语法来查询和修改数据,在方法中调用MyBatis-Plus的方法来实现这些操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis-plus与mybatis共存的实现 - Python技术站

(1)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • SpringSecurity认证流程详解

    以下是SpringSecurity认证流程详解的完整攻略: 一、背景介绍 SpringSecurity是一个基于Spring框架的安全框架,它可以为我们的应用程序提供认证、授权、防护和攻击检测等方面的支持。在SpringSecurity中,认证是指判断用户的身份是否合法,而授权则是指控制用户访问哪些资源。 二、SpringSecurity认证流程 Sprin…

    Java 2023年5月20日
    00
  • java实现登录之后抓取数据

    下面是Java实现登录之后抓取数据的完整攻略: 一、概述 当我们需要抓取某个网站上的数据时,通常需要先登录该网站,这样才能访问该网站的受保护资源。本篇攻略将会讲解如何使用Java实现模拟登录,并抓取登录后的页面数据。 二、准备 为了实现模拟登录,我们需要用到Java的HttpClient和Jsoup库。HttpClient用于发送HTTP请求,而Jsoup用…

    Java 2023年5月19日
    00
  • Servlet+JDBC实现登陆功能的小例子(带验证码)

    下面是“Servlet+JDBC实现登陆功能的小例子(带验证码)”的完整攻略,包含以下内容: 需求分析 我们需要实现一个包含验证码的登陆功能,用户需要输入用户名、密码和验证码,当用户点击提交按钮时,系统会校验用户的输入,如果输入正确,则跳转到登录成功页面,否则提示错误信息。 技术选择 我们使用Servlet技术实现用户输入数据的接收和校验,使用JDBC技术实…

    Java 2023年6月15日
    00
  • IntelliJ idea 如何生成动态的JSON字符串(步骤详解)

    下面是详细的攻略,包括两个示例说明。 IntelliJ idea 如何生成动态的JSON字符串(步骤详解) 一、使用Gson库生成JSON字符串 在IntelliJ Idea中创建一个Java项目,然后在项目中导入Gson库的jar包。 创建一个Java类,在类中定义一个类成员,用于存储需要生成的JSON数据。 “`java import com.goog…

    Java 2023年5月26日
    00
  • Ubuntu16.04安装部署solr7的图文详细教程

    下面是“Ubuntu16.04安装部署solr7的图文详细教程”的完整攻略: 环境准备 安装Java Solr 7 需要运行在 Java 8 上,所以我们需要先安装 Java 8。 在终端中输入以下命令进行安装: sudo add-apt-repository ppa:webupd8team/java sudo apt update sudo apt ins…

    Java 2023年5月19日
    00
  • Java的反射机制

    介绍反射机制 Java 的反射机制允许在程序运行期间,借助反射 API 获取类的内部信息,并能直接操作对象的内部属性及方法。 Java 反射机制提供的功能: 在运行时,使用反射分析类的能力,获取有关类的一切信息(类所在的包、类实现的接口、标注的注解、类的数据域、类的构造器、类的方法等) 在运行时,使用反射分析对象,设置实例域的值,查看实例域的值。 反射机制允…

    Java 2023年5月5日
    00
  • java随机字符串生成示例

    当我们需要在Java应用程序中生成随机字符串时,可以使用Java中的Random类来实现。下面是一个完整的Java随机字符串生成示例攻略: 1. 导入Random类 import java.util.Random; 2. 定义随机生成字符串的方法 public static String generateRandomString(int length) { …

    Java 2023年5月26日
    00
  • Java基于redis和mysql实现简单的秒杀(附demo)

    下面是Java基于redis和mysql实现简单的秒杀的完整攻略。 1. 简介 本攻略为使用Java语言基于redis和mysql实现简单的秒杀过程,实现一个只有1个商品,10个用户,每个用户仅可购买1次的秒杀场景。 其中,redis用于作为缓存,避免多次查询数据库;mysql用于存储用户和商品信息,以及记录购买信息。在秒杀场景中,需要考虑并发访问和超卖的问…

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