MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
一、在SpringBoot中集成MyBatisPlus
1.1、pom.xml
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis-plus 是自己开发的,非官方的!-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
1.2、application.properties
# mysql 5 驱动不同 com.mysql.jsbc.Driver
# mysql 8 驱动不同 com.mysql.cj.jsbc.Driver、需要增加时区的配置
spring.datasource.username=root
spring.datasource.password=Aa123123.
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
1.3、BootApplication添加@MapperScan注解
package com.example.mybatisplus;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.example.mybatisplus.dao")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class, args);
}
}
1.4、实体
常用注解:
@TableName("表名")
当表名与实体类名不一致时,可以在实体类上加入@TableName()声明@TableId
声明属性为表中的主键(若属性名称不为默认id)@TableFieId("字段")
当实体类属性与表字段不一致时,可以用来声明-
package com.example.mybatisplus.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @TableName("tbl_user") @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class User { @TableId(type = IdType.AUTO) private Long id; @TableField("name") private String name; private Integer age; private String email; }
1.5、UserMapper.java
-
package com.example.mybatisplus.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.mybatisplus.entity.User; public interface UserMapper extends BaseMapper<User> { }
1.6、Controller中使用Wrapper进行条件查询
-
package com.example.mybatisplus.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.mybatisplus.dao.UserMapper; import com.example.mybatisplus.entity.User; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Slf4j @RestController @RequestMapping("/test") public class TestController { @Autowired(required = false) private UserMapper userMapper; /** * 查询数据库中所有的记录 * @return */ @GetMapping("/t1") public List<User> t1(){ User u=new User(); u.setName("刘俊杰小xx"); u.setAge(2); u.setEmail("fsafesg@163.com"); u.setId(12l); // int rows = userMapper.insert(u); // if(rows>0){ // log.info("添加成功"); // }else { // log.error("添加失败"); // } userMapper.deleteById(13); return userMapper.selectList(null); } @GetMapping("/t2") public List<User> t2(){ QueryWrapper<User> wrapper=new QueryWrapper<User>(); // wrapper.isNotNull("name"); // wrapper.le("age",12); // wrapper.eq("name","Tom"); // wrapper.eq("age",21); // wrapper.between("age",20,30); // wrapper.like("email","qq"); // wrapper.likeLeft("email","edu"); // wrapper.likeRight("email","2"); wrapper.orderByAsc("age"); return userMapper.selectList(wrapper); } }