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

在这里插入图片描述

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

1. 底层框架

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

2. 代码差异:

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

3. 使用差异:

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

4. 案例代码分析

4.1 MyBatis

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

<!-- 配置文件 --&gt;  
<configuration&gt;  
   <environments default="development"&gt;  
       <environment id="development"&gt;  
           <transactionManager type="JDBC"/&gt;  
           <dataSource type="POOLED"&gt;  
               <property name="driver" value="com.mysql.jdbc.Driver"/&gt;  
               <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;amp;serverTimezone=UTC"/&gt;  
               <property name="username" value="root"/&gt;  
               <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://blog.csdn.net/superdangbo/article/details/132812107

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10977.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注