Mybatis-plus使用教程

57 阅读1分钟

mybatis-plus 使用

sql准备

DROP TABLE IF EXISTS user;
CREATE TABLE user(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id));

DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');

1.添加依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1.tmp</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>5.1.46</version>
</dependency>
</dependencies>

2.修改配置文件

server:
  port: 4321
spring:
  profiles:
    active: /
  datasource:
    url: jdbc:mysql://10.20.7.143:3306/test_mysql?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:mapper/*.xml
  type-aliases-package: com.lzx.testmp.doman

3.入口类添加扫描注解

@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(QuickStartApplication.class, args);
    }
}

4.创建实体类User

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

5.编写mapper接口

public interface UserMapper extends BaseMapper<User> {}

6.编写测试类

@RunWith(SpringRunner.class)
@SpringBootTestpublic
 class SampleTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {

        User user=new User();
        user.setId(1);
        user.setName("test");
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        List<User> userList = userMapper.insert(user);
        List<User> userList = userMapper.deleteById(1);
        List<User> userList = userMapper.updateById(user);

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.like("name","张");
        IPage<User> userIPage=userMapper.selectPage(new Page<User>(1,10),queryWrapper);
    }
}

7 分页插件配置

@EnableTransactionManagement
@Configuration
@MapperScan("com.lzx.testmp.dao.*")
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }}
}

8.编写xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lzx.testmp.dao.UserMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.lzx.testmp.doman.User">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="age" property="age" />
        <result column="email" property="email" />
    </resultMap>

      <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, name, age,email
    </sql>

    <select id="findById2" resultType="com.lzx.testmp.doman.User">
        select *from user where id=#{id}
    </select>
</mapper>

9.编写mapper接口

public interface UserMapper extends BaseMapper<User> {
    User findById2(Long id);
}