1.MybatisPlus与Mybatis的区别?
mybatis 是一个优秀的基于java的持久层(Dao)框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程
可以理解MybatisPlus是Mybatis的增强工具,在Mybatis的基础上只做增强不做改边,为简化开发、提高效率而生
2.如何使用?
在SpringBoot的项目中,添加进mybaits-plus的springboot的场景包
在导入进去之后,连接我们的数据库。连接数据库的配置在yaml或properties中,跟以往的配置一样。
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
# useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
当连接数据库完成后,需要建造一个独属于自己的实体类的接口。
/**
* 在对应的 Mapper 上面实现基本的接口 BaseMapper
* 继承了BaseMapper,所有的方法都来自父类
* 当想要添加方法时,也可以编写自己的扩展方法
*/
@Repository
public interface UserMapper extends BaseMapper<User> {
/**
* 当继承 BaseMapper后,CRUD已经编写完成
*/
}
在测试类中,回填对应的实体类,使用该类即可。
@Autowired
private UserMapper userMapper;
2.1新增
在测试类中进行测试。
@Test
@DisplayName("测试插入")
public void testInsert(){
User userOne = new User();
userOne.setAge(12);
userOne.setName("王老吉");
userOne.setEmail("user@example.com");
int reult = userMapper.insert(userOne);
System.out.println(reult);
System.out.println(userOne);
}
插入直接创建一个实体类,然后使用接口的insert方法新增即可。
2.2修改
@Test
@DisplayName("测试更新")
public void testUpdate() {
User userOne = new User();
userOne.setId(7);
userOne.setName("时间自动填充");
int row = userMapper.updateById(userOne);
System.out.println(row);
}
修改也是一样,跟新增不同的是,设置实体类时,确定好修改的id,然后调用mapper接口的方法即可。
2.3查询
@Test
void contextLoads() {
// 参数是一个Wrapper,条件构造器,这里不用就先null
// 查询所有用户
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
查询有很多的方法,这里直接调用mapper接口的selectList方法传入null值,即可查到对应实体类中在数据库里代表的所有数据
2.4单个查询
@Test
@DisplayName("单个查询")
public void select02(){
User user = userMapper.selectById(5);
System.out.println(user);
}
框架中也有对应的方法,直接用mapper接口使用方法即可。参数就是数据的ID
3.总结:
个人而言,MybatisPlus是比Mybatis更加的省事!包括使用mapper接口,它已经在接口中实现了大量的自适应 sql代码,我们使用只需要调用对应的方法就好。其中还有代码生成器这样的简便功能,谁手动创建目录谁就慢了。