赞
踩
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>
<!-- 其他 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);
}
// 其他方法
}
以下是一个简单的 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:ss</date-format>
<null-type-handler>com.baomidou.mybatisplus.core.handlers.空字符串类型处理器</null-type-handler>
</global-config>
</mybatis-plus-config>
以上代码演示了如何使用 MyBatisPlus 实现用户信息的增删改查。在这个案例中,我们使用了 MyBatisPlus 提供的注解和插件,简化了 MyBatis 的开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。