MyBatisPlus操作手册.docx
mybatisplus是mybatis的升级版,提供了大量的API接口,令大家的持久层操作变得简化且方便,个人整理了部分mybatis比较实用的功能,希望可以帮助需要学习使用mybatisplus的同学 MyBatisPlus(MP)是MyBatis的增强工具,旨在简化常见的数据库操作,提供了一系列丰富的API接口,使得开发者在处理持久层时更加便捷高效。本手册将介绍如何使用MyBatisPlus实现对数据表的CRUD(创建、读取、更新、删除)操作。 ### 创建(Create) 在MyBatis中,为了实现对数据库表的操作,通常需要编写Mapper接口以及对应的XML映射文件,手动书写SQL语句。但在MyBatisPlus中,这一过程大大简化。例如,对于一个名为`tb_employee`的表,其对应的实体类为`Employee`,我们可以这样做: 1. **创建接口**:创建一个`EmployeeMapper`接口,然后让这个接口继承`BaseMapper`接口。`BaseMapper`接口已经内置了对各种数据类型的基本CRUD操作。 ```java public interface EmployeeMapper extends BaseMapper<Employee> { } ``` 2. **添加操作**:在测试类中,通过Spring的@Autowired注解注入`EmployeeMapper`的实现,然后调用`insert()`方法,传入`Employee`实体对象即可完成插入操作。MyBatisPlus还会自动将新生成的ID回填到实体对象中。 ```java @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath:spring/spring-dao.xml"}) public class Test { @Autowired private EmployeeMapper employeeMapper; @Test public void testInsert() { Employee employee = new Employee(); employee.setLastName("东方不败"); employee.setEmail("dfbb@163.com"); employee.setGender(1); employee.setAge(20); employeeMapper.insert(employee); System.out.println(employee.getId()); } } ``` ### 读取(Read) MyBatisPlus提供了多种查询方式来获取数据。 #### 单个对象 - **根据ID查询**:使用`selectById()`方法可以直接根据ID获取单个对象。 ```java Employee employee = employeeMapper.selectById(1); ``` - **根据条件查询**:如果需要根据特定条件查询,可以创建一个`Employee`实例,设置好条件属性,然后调用`selectOne()`方法。但需要注意,如果查询结果有多个,`selectOne()`会抛出异常。 ```java Employee employeeCondition = new Employee(); employeeCondition.setId(1); employeeCondition.setLastName("更新测试"); employee = employeeMapper.selectOne(employeeCondition); ``` #### 多个对象 - **按条件查询多条数据**:如果可能有多条匹配结果,应使用`selectByMap()`方法,传入一个包含列名和对应值的`Map`。 ```java Map<String, Object> columnMap = new HashMap<>(); columnMap.put("last_name", "东方不败"); columnMap.put("gender", "1"); List<Employee> employees = employeeMapper.selectByMap(columnMap); System.out.println(employees.size()); ``` ### 更新(Update) MyBatisPlus提供了两种主要的更新方法:`updateById()`和`updateAllColumnById()`。 - **部分更新**:`updateById()`方法只会更新传入对象中非空的属性,其他字段保持不变。 ```java @Test public void testUpdate() { Employee employee = new Employee(); employee.setId(1); employee.setLastName("更新测试"); employeeMapper.updateById(employee); } ``` - **全量更新**:`updateAllColumnById()`方法会更新所有列,未传入的属性值将被设为NULL。 ```java employeeMapper.updateAllColumnById(employee); ``` ### 删除(Delete) 删除操作可以通过`deleteById()`方法实现,它接受一个ID作为参数,用于删除特定ID的记录。 ```java @Test public void testDelete() { employeeMapper.deleteById(1); } ``` 总结来说,MyBatisPlus通过简化CRUD操作,减轻了开发者的负担,提高了开发效率。它的强大功能还包括条件构造器、逻辑删除、事务管理等,使得在实际项目中使用MyBatisPlus成为一种高效的选择。通过理解并熟练掌握MyBatisPlus的API,开发者可以更专注于业务逻辑,而非繁琐的SQL编写。
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助