加入依赖
pom.xml
1 2 3 4 5
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency>
|
配置 MapperScan 注解
1 2 3 4 5 6 7 8 9
| @SpringBootApplication @MapperScan("com.your.package.**.mapper") public class Application {
public static void main(String[] args) { SpringApplication.run(BootdoApplication.class, args); }
}
|
配置application.yml(以yml文件为例)
1 2 3 4 5
| mybatis: configuration: map-underscore-to-camel-case: true mapper-locations: classpath*:/mapper/**/*.xml typeAliasesPackage: com.your.package.**.entity
|
数据源配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.01:3306/demo?useUnicode=true&characterEncoding=utf8 username: root password: root initialSize: 1 minIdle: 3 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 30000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat,wall,slf4j connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
创建entity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package com.your.package.**.entity;
import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors;
import java.io.Serializable;
@Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class Demo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "classId", type = IdType.AUTO) private Long classId;
@TableField("className") private String className; }
|
注意:这里使用了@Data
注解来简化代码,否则要完整书写getter
、setter
类方法。
你可以增加依赖lombok
来使用它
1 2 3 4 5
| <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
|
另外如果你使用Idea
则还需要Lombok Plugin
插件,你才能正常使用getter
、setter
代码提示及正常编译。
创建mapper
1 2 3 4 5 6 7 8 9
| package com.your.package.**.mapper;
import com.your.package.**.entity.Demo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper;
@Mapper public interface DemoMapper extends BaseMapper<Demo> {}
|
创建service
1 2 3 4 5 6 7
| package com.your.package.**.service;
import com.your.package.**.entity.Demo; import com.baomidou.mybatisplus.extension.service.IService;
public interface DemoService extends IService<Demo> {}
|
创建serviceImpl
1 2 3 4 5 6 7 8 9 10 11
| package com.your.package.**.service.impl;
import com.your.package.**.entity.Demo; import com.your.package.**.mapper.DemoMapper; import com.your.package.**.service.DemoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service;
@Service public class DemoServiceImpl extends ServiceImpl<DemoMapper, Demo> implements DemoService {}
|
创建mapper.xml
在resources/maaper目录下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?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.your.package.**.mapper.DemoMapper"> <resultMap id="BaseResultMap" type="com.your.package.**.entity.Demo"> <id column="classId" property="classId" /> <result column="className" property="className" /> </resultMap>
<sql id="Base_Column_List"> contentId, className </sql>
</mapper>
|
在controller中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package com.your.package.**.controller;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RestController;
@RestController @RequestMapping("/api") public class DemoController { private final Logger logger = LoggerFactory.getLogger(DemoController.class); @Autowired public DemoService iDemoService;
@RequestMapping("/demo") @ResponseBody public Page demo( @RequestParam(name = "page", defaultValue = "1") int page, @RequestParam(name = "size", defaultValue = "20") int size){ QueryWrapper<Demo> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("classId",1); Page ipage = new Page(page,size); iDemoService.page(ipage,queryWrapper); return ipage; } }
|
结束