目录 1. 底层框架:2. 代码差异:3. 使用差异:4. 案例代码分析:4.1 MyBatis4.2 MyBatisPlus mybatis 和 MyBatisPlus 都是基于
mybatis 和 MyBatisPlus 都是基于 MyBatis 的扩展库,用于简化 MyBatis 的开发。MyBatisPlus 是在 MyBatis 的基础上进行封装,提供了一套通用的 CRUD 操作接口,而 MyBatis 是一个底层的持久层框架。
MyBatis 是一个持久层框架,它支持定制化 sql、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行配置和原生映射。
MyBatisPlus 是一个基于 MyBatis 的扩展库,它提供了一套通用的 CRUD 操作接口,自动生成 SQL 语句,并提供了丰富的查询条件构造器等功能。MyBatisPlus 主要使用了注解进行配置和映射。
MyBatis 的代码主要涉及到以下几个部分:
MyBatis 需要手动编写 SQL 语句和结果映射,但提供了高度的定制化能力。MyBatis 的优点是可以根据实际需求灵活编写 SQL 语句,但缺点是编写映射文件和手动设置参数比较繁琐。
MyBatisPlus 提供了一套通用的 CRUD 操作接口,自动生成 SQL 语句。MyBatisPlus 的优点是简化了 MyBatis 的开发,提高了开发效率,但缺点是定制化能力较差,对于复杂的 SQL 语句可能无法满足需求。
以下是一个简单的 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&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> 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); } // 其他方法 }
以下是一个简单的 MyBatisPlus 案例,用于演示用户信息的增删改查:
public class User { private Long id; private String username; private String password; private String email; // 省略 getter 和 setter 方法 }
import com.baomidou.mybatisplus.core.mapper.BaseMapper;public interface UserMapper extends BaseMapper<User> { }
import com.baomidou.mybatisplus.extension.service.IService;public interface UserService extends IService<User> { }
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service;@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
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"; } }
<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:ssdate-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
--结束END--
本文标题: 实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码
本文链接: https://lsjlt.com/news/407232.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0