首先创建springboot工程,然后在pom.xml中添加mybatis-plus相关依赖
-
- <dependency>
- <groupId>com.baomidougroupId>
- <artifactId>mybatis-plus-boot-starterartifactId>
- <version>3.5.1version>
- dependency>
-
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <optional>trueoptional>
- dependency>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <scope>runtimescope>
- dependency>
在application.properties中添加以下信息:
- #配置数据源类型
- spring.datasource.type=com.zaxxer.hikari.HikariDataSource
- #配置连接数据库的信息
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
- spring.datasource.username=root
- spring.datasource.password=123456
-
- #添加日志
- mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
注意:spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus中mybatisplus是数据库名称
lombok提供了以下注解,可以用于简化实体类对象的开发
- package com.xdu.mybatisplus.pojo;
-
- import lombok.AllArgsConstructor;
- import lombok.Getter;
- import lombok.NoArgsConstructor;
- import lombok.Setter;
-
- @NoArgsConstructor //无参构造
- @AllArgsConstructor //有参构造(全部参数)
- @Getter //get方法
- @Setter //set方法
- public class User {
- private Integer id;
- private String name;
- private Integer age;
- }
可以使用一个@Data注解来简化:
@Data注解:会给实体类对象添加无参构造器、get和set方法、toString方法
- package com.xdu.mybatisplus.pojo;
-
- import lombok.*;
-
- @Data
- public class User {
- private Integer id;
- private String name;
- private Integer age;
- }
创建Mapper接口来继承BaseMapper
BaseMapper是SpringBoot自动生成的接口,包含了很多操作数据库的方法
- package com.xdu.mybatisplus.mapper;
-
- import com.baomidou.mybatisplus.core.mapper.BaseMapper;
- import com.xdu.mybatisplus.pojo.User;
- import org.apache.ibatis.annotations.Mapper;
-
- @Mapper
- public interface UserMapper extends BaseMapper
{ -
- }
- package com.xdu.mybatisplus;
-
- import com.xdu.mybatisplus.mapper.UserMapper;
- import com.xdu.mybatisplus.pojo.User;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
-
- import java.util.List;
-
- @SpringBootTest
- public class MyBatisPlusTest {
- @Autowired
- private UserMapper userMapper;
-
- @Test
- public void testSelect(){
- //通过条件构造器查询满足条件的用户,若没有条件,则可以设置为null(即查询所有用户)
- List
list = userMapper.selectList(null); - list.forEach(System.out::println);
- }
- }
注意:该方式没有创建mapper接口的映射文件,使用的是BaseMapper中已有的方法
- package com.xdu.mybatisplus;
-
- import com.xdu.mybatisplus.mapper.UserMapper;
- import com.xdu.mybatisplus.pojo.User;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
-
- @SpringBootTest
- public class MyBatisPlusTest {
- @Autowired
- private UserMapper userMapper;
-
- @Test
- public void testInsert(){
- User user = new User();
- user.setName("Mike");
- user.setAge(22);
-
- //INSERT INTO user ( id, name, age ) VALUES ( ?, ?, ? )
- int result = userMapper.insert(user);
- System.out.println(result);
- }
- }
- package com.xdu.mybatisplus;
-
- import com.xdu.mybatisplus.mapper.UserMapper;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
-
- import java.util.*;
-
- @SpringBootTest
- public class MyBatisPlusTest {
- @Autowired
- private UserMapper userMapper;
-
- @Test
- public void testDelete(){
- //通过id删除用户:deleteById
- int result1 = userMapper.deleteById(5);
- System.out.println(result1);
-
- //通过Map集合中设置的条件来删除用户:deleteByMap
- Map
map = new HashMap<>(); - map.put("name", "Tom");
- map.put("age", 22); //删除name=Tom且age=22的用户
- int result2 = userMapper.deleteByMap(map);
- System.out.println(result2);
-
- //根据id批量删除:deleteBatchIds
- List
list = new ArrayList<>(); - list.add(1);
- list.add(2);
- int result3 = userMapper.deleteBatchIds(list);
- System.out.println(result3);
- }
-
- }
- package com.xdu.mybatisplus;
-
- import com.xdu.mybatisplus.mapper.UserMapper;
- import com.xdu.mybatisplus.pojo.User;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
-
- @SpringBootTest
- public class MyBatisPlusTest {
- @Autowired
- private UserMapper userMapper;
-
- @Test
- public void testUpdate(){
- //根据id修改用户信息:updateById
- //将id=3的用户的name修改为张三,age修改为24
- User user = new User();
- user.setId(3);
- user.setName("张三");
- user.setAge(24);
- int result = userMapper.updateById(user);
- System.out.println(result);
- }
-
- }
- package com.xdu.mybatisplus;
-
- import com.xdu.mybatisplus.mapper.UserMapper;
- import com.xdu.mybatisplus.pojo.User;
- import org.junit.jupiter.api.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
-
- import java.util.*;
-
- @SpringBootTest
- public class MyBatisPlusTest {
- @Autowired
- private UserMapper userMapper;
-
- @Test
- public void testSelect(){
- //根据id查询用户:selectById
- User user = userMapper.selectById(1);
- System.out.println(user);
-
- //根据id批量查询:selectBatchIds
- List
list = Arrays.asList(1, 2 ,3); - List
userList = userMapper.selectBatchIds(list); - System.out.println(userList);
-
- //根据map集合查询:在map集合中设置查询条件
- //查询name=张三且age=24的用户
- Map
map = new HashMap<>(); - map.put("name", "张三");
- map.put("age", 24);
- List
users = userMapper.selectByMap(map); - users.forEach(System.out::println);
-
- //查询所有数据
- //通过条件构造器查询满足条件的用户,若没有条件,则可以设置为null(即查询所有用户)
- List
users1 = userMapper.selectList(null); - users1.forEach(System.out::println);
- }
- }