实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码

这篇具有很好参考价值的文章主要介绍了实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码,mybatis,java,mybatisplus,spring

MyBatis 和 MyBatisPlus 都是基于 MyBatis 的扩展库,用于简化 MyBatis 的开发。MyBatisPlus 是在 MyBatis 的基础上进行封装,提供了一套通用的 CRUD 操作接口,而 MyBatis 是一个底层的持久层框架。

1. 底层框架:

MyBatis 是一个持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行配置和原生映射。
MyBatisPlus 是一个基于 MyBatis 的扩展库,它提供了一套通用的 CRUD 操作接口,自动生成 SQL 语句,并提供了丰富的查询条件构造器等功能。MyBatisPlus 主要使用了注解进行配置和映射。

2. 代码差异:

MyBatis 的代码主要涉及到以下几个部分:

  • MyBatis 的配置文件(mybatis-config.xml),用于配置数据源、映射文件等。
  • 映射文件(Mapper.xml),用于定义 SQL 语句和结果映射。
  • Mapper 接口,用于定义与映射文件对应的方法。
  • DAO 接口,用于封装 Mapper 接口,提供统一的 CRUD 方法。
    MyBatisPlus 的代码主要涉及到以下几个部分:
  • MyBatisPlus 的配置文件(mybatis-plus-config.xml),用于配置数据源、分页插件等。
  • 实体类(Entity),用于定义数据库表对应的实体类。
  • Mapper 接口,用于定义与数据库表对应的方法。
  • Service 接口,用于封装 Mapper 接口,提供统一的 CRUD 方法。
  • ServiceImpl 类,实现 Service 接口,调用 Mapper 接口进行数据库操作。

3. 使用差异:

MyBatis 需要手动编写 SQL 语句和结果映射,但提供了高度的定制化能力。MyBatis 的优点是可以根据实际需求灵活编写 SQL 语句,但缺点是编写映射文件和手动设置参数比较繁琐。
MyBatisPlus 提供了一套通用的 CRUD 操作接口,自动生成 SQL 语句。MyBatisPlus 的优点是简化了 MyBatis 的开发,提高了开发效率,但缺点是定制化能力较差,对于复杂的 SQL 语句可能无法满足需求。

4. 案例代码分析:

4.1 MyBatis

以下是一个简单的 MyBatis 案例,用于演示用户信息的增删改查:

<!-- 配置文件 -->  
<configuration>  
   <environments default="development">  
       <environment id="development">  
           <transactionManager type="JDBC"/>  
           <dataSource type="POOLED">  
               <property name="driver" value="com.mysql.jdbc.Driver"/>  
               <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC"/>  
               <property name="username" value="root"/>  
               <property name="password" value="password"/>  
           </dataSource>  
       </environment>  
   </environments>  
   <mappers>  
       <mapper resource="com/example/mapper/UserMapper.xml"/>  
   </mappers>  
</configuration>  
<!-- 映射文件 -->  
<mapper namespace="com.example.mapper.UserMapper">  
   <insert id="insertUser" parameterType="com.example.entity.User">  
       INSERT INTO user (username, password, email) VALUES (#{username}, #{password}, #{email})  
   </insert>  
   <!-- 其他 SQL 语句 -->  
</mapper>  
// Mapper 接口  
public interface UserMapper {  
   int insertUser(User user);  
   // 其他方法  
}
// DAO 接口  
public interface UserDao {  
   int insertUser(User user);  
   // 其他方法  
}
// 业务逻辑层  
@Service  
public class UserService {  
   @Autowired  
   private UserDao userDao;  
   public int insertUser(User user) {  
       return userDao.insertUser(user);  
   }  
   // 其他方法  
}

4.2 MyBatisPlus

以下是一个简单的 MyBatisPlus 案例,用于演示用户信息的增删改查:

  1. 首先,创建一个实体类(Entity)User.java:
public class User {  
   private Long id;  
   private String username;  
   private String password;  
   private String email;
   // 省略 getter 和 setter 方法  
}
  1. 创建一个 Mapper 接口 UserMapper.java:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {  
}
  1. 创建一个 Service 接口 UserService.java:
import com.baomidou.mybatisplus.extension.service.IService;
public interface UserService extends IService<User> {  
}
  1. 创建一个 ServiceImpl 类 UserServiceImpl.java,实现 Service 接口:
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;  
import org.springframework.stereotype.Service;
@Service  
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {  
}
  1. 创建一个 Controller 类 UserController.java,处理 HTTP 请求:
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController  
@RequestMapping("/user")  
public class UserController {
   @Autowired  
   private UserService userService;
   @PostMapping  
   public String createUser(@RequestBody User user) {  
       userService.save(user);  
       return "User created";  
   }
   @GetMapping("/{id}")  
   public User getUser(@PathVariable Long id) {  
       return userService.getById(id);  
   }
   @GetMapping  
   public List<User> getUsers() {  
       return userService.list();  
   }
   @PutMapping("/{id}")  
   public String updateUser(@PathVariable Long id, @RequestBody User user) {  
       user.setId(id);  
       userService.updateById(user);  
       return "User updated";  
   }
   @DeleteMapping("/{id}")  
   public String deleteUser(@PathVariable Long id) {  
       userService.removeById(id);  
       return "User deleted";  
   }  
}
  1. 配置 MyBatisPlus 在 Spring Boot 项目中:
<!-- 配置文件 -->  
<configuration>  
   <extensions>  
       <extension plugin-id="mybatis-plus" interceptor="com.baomidou.mybatisplus.extension.MybatisPlusInterceptor"/>  
   </extensions>  
</configuration>  
<!-- 配置文件 -->  
<mybatis-plus-config>  
   <mapper-locations>  
       <mapper-location resource="classpath:mapper/*Mapper.xml"/>  
   </mapper-locations>  
   <type-aliases>  
       <package name="com.example.entity"/>  
   </type-aliases>  
   <global-config>  
       <db-config>  
           <logic delete-flag="true"/>  
           <logic not-delete-flag="false"/>  
       </db-config>  
       <date-format>yyyy-MM-dd HH:mm:ss</date-format>  
       <null-type-handler>com.baomidou.mybatisplus.core.handlers.空字符串类型处理器</null-type-handler>  
   </global-config>  
</mybatis-plus-config>  

以上代码演示了如何使用 MyBatisPlus 实现用户信息的增删改查。在这个案例中,我们使用了 MyBatisPlus 提供的注解和插件,简化了 MyBatis 的开发。文章来源地址https://www.toymoban.com/news/detail-708829.html

到了这里,关于实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java在线代码生成工具,支持JPA、Mybatis、MybatisPlus

    【Java代码生成神器】自动化生成Java实体类、代码、增删改查功能!点击访问 推荐一个自己每天都在用的Java代码生成器!这个网站支持在线生成Java代码,包含完整的ControllerServiceEntityDao代码,完整的增删改查功能! 还可以自定义自己的代码模板、自由配置高级选项,指定

    2024年02月19日
    浏览(32)
  • php 系列题目,包含查看后端源代码

    1.字符串和数字比较,字符串回被转换成数字。 \\\"admin\\\" ==0(true) admin被转换成数字,由于admin是字符串,转换失败,变成0 int(admin)=0,所以比较结果是ture 2.混合字符串转换成数字,看字符串的第一个 “1admin” == 1 ‘’2admin“ == 2  3.字符串开头以xex开头,x代表数字。会被转换成科

    2024年02月11日
    浏览(35)
  • Mac 电脑系统重装(详细流程,包含 Intel、Apple M系列)

    重点:在刷机之前,先退出当前电脑的 Apple 账号 登录,确保解除账号绑定的环境下在进行刷机, 为啥需要重点提醒,其实也是可以在刷机过程中输入当前绑定电脑的账号密码后,继续刷机的。 但是,博主有点背,也就是我使用一个手机号注册的 Apple 账号 ,登录了电脑,然

    2024年02月13日
    浏览(31)
  • Node.js入门笔记(包含源代码)以及详细解析

    01、如何在终端中执行js 文件 目标 :将下面的代码语句在中断中执行 代码演示: 方法: 在文件上右击打开在终端中执行 ,然后输入node空格 输入需要执行的文件名字 02、基于 fs 模块读写文件内容 目标:使用fs模代码操作文件在终端中的读写操作 + 1、加载 fs 模块对象 2、写

    2024年02月14日
    浏览(36)
  • Ajax笔记_01(知识点、包含代码和详细解析)

    前置知识点 在JavaScript中 问题1:将数组转为字符串,以及字符串转为数组的方式。 问题2、将对象转为字符串,以及字符串转为对象的方法。 方法: 问题1: 将数组转为字符串可以使用 join() 方法。例如: var array = [1, 2, 3]; var str = array.join(\\\',\\\'); ,将数组 [1, 2, 3] 转为字符串

    2024年02月14日
    浏览(33)
  • SpringBoot整合Druid、Mybatis、MybatisPlus以及MybatisPlus的使用

    1)引入jar包 2)在application.yml中 注意: initialization-mode: always 第一次用过之后注释掉,或者将其改成never 3).启动项目,访问:http://127.0.0.1:8080/druid/          用户名:admin/密码:123456(在配置文件中有) ps:还记得mybatis中的sqlSessionFactory要传入一个dataSource吗?所以我们先学习

    2024年02月12日
    浏览(27)
  • MyBatis动态语句且如何实现模糊查询及resultType与resultMap的区别---详细介绍

    前面我们学习了如何使用Mybatis实现简单的增删改查。今天我们来学习如何使用动态语句来根据不同的条件生成不同的SQL语句。这在实际开发中非常有用,因为通常查询条件是多样化的,需要根据实际情况来拼接SQL语句,那什么是MyBatis动态语句呢,看下面详细简介 MyBatis动态语

    2024年02月11日
    浏览(32)
  • 本地项目提交代码到git仓库详细教程包含错误解决办法!!!

    1、查看远程分支 2、查看本地分支 二、创建和切换分支 1、创建新分支 2、切换分支 3、创建分支的同时,切换到该分支上 三、从远程仓库pull(拉取)代码到本地分支 1、指定远程分支,和本地分支 2、如果不写本地分支名称,则默认和远程分支同名 ,命令如下: 四、将新分

    2024年02月13日
    浏览(33)
  • MyBatis关联查询实战:一对一与一对多详细解析

    MyBatis是一款强大的持久层框架,提供了多种方式来处理关联查询,其中包括一对一和一对多的情况。在本文中,我们将深入探讨这两种关联查询的实现方式,并通过具体的示例代码进行详细解释。 实现一对一关联查询的方式有多种,其中包括嵌套查询(Nested Queries)和结果集

    2024年01月19日
    浏览(62)
  • idea配置jdbc连接MySQL的全部详细步骤(包含运行代码)

    读者手册(必读)_云边的快乐猫的博客-CSDN博客 一、导包 1. 打开 idea ,在左上角找到当前使用的这个模块,右键打开新建一个 Directory   2. 这个目录包命名为 lib 3. 在本地磁盘中找到下载的MySQL的这个jar包,点击ctrl +c复制,ctrl+v粘贴到这个lib里面点击ok就好了   4. 这样就完成

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包