环境要求
1.数据库中建立表结构
CREATE TABLE `mp` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`activity_id` bigint(20) DEFAULT NULL COMMENT '活动id',
`activity_name` varchar(30) DEFAULT NULL COMMENT '活动名称',
`activity_type` int(11) DEFAULT NULL COMMENT '活动类型',
`count` int(11) DEFAULT NULL COMMENT '活动报名人数',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_group_act` (`create_time`,`count`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.构建一个SpringBoot工程
这里不会展示怎么构建SpringBoot工程,非常的简单,不会的大家可以去百度一下。使用IDEA基本上是下一步点下去就完事了。
- 启动类
package com.example.mp;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author 95152
*/
@SpringBootApplication
// 这里填写你的mapper路径,或者你可以通过@Mapper这个注解来声明这是一个Bean
@MapperScan("com.example.mp.mapper")
public class MpApplication {
public static void main(String[] args) {
SpringApplication.run(MpApplication.class, args);
}
}
- yml文件配置
spring:
datasource:
## 这里说明一下,sakila是我的数据库名称,你们根据你们的来
url: jdbc:mysql://127.0.0.1:3306/sakila?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
logging:
level:
root: warn
## 这里写你自己的包路径
com.example.mp.mapper: trace
pattern:
console: '%p%m%n'
server:
port: 8080
tomcat:
uri-encoding: UTF-8
mybatis-plus:
configuration:
##驼峰下划线之间的转换
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- pom文件
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</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.2</version>
</dependency>
Java实体类
package com.example.mp.model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author 95152
*/
@Data
@TableName("mp")
public class ActivityEntity {
/**
* 主键
*/
private Long id;
/**
* 活动id
*/
private Long activityId;
/**
* 活动名称
*/
private String activityName;
/**
* 活动类型
*/
private Integer activityType;
/**
* 活动报名人数
*/
private Integer count;
/**
* 创建时间
*/
private Date createTime;
public static ActivityEntity getInstance(Long activityId, String activityName, Integer activityType, Integer count, Date createTime) {
ActivityEntity activityEntity = new ActivityEntity();
activityEntity.activityId = activityId;
activityEntity.activityName = activityName;
activityEntity.activityType = activityType;
activityEntity.count = count;
activityEntity.createTime = createTime;
return activityEntity;
}
}
-
ServiceImpl
这里注意要继承官方的ServiceImpl<M extends BaseMapper<T>, T>
接口,第一个参数是你的Mapper,第二个是你的实体类.
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper,ActivityEntity> implements ActivityService
- Mapper
public interface ActivityMapper extends BaseMapper<ActivityEntity>
基础注解
下面我们来说说MP中一些重要的概念.
- 表名映射
示例:
@TableName("mp")
public class ActivityEntity
- 主键策略
示例: 假设你的数据库主键列叫user_id
/**
* 主键
*/
@TableId
private Long userId;
官网:https://baomidou.com/guide/annotation.html#tableid
- Field映射
示例: 如果你的数据库字段叫user_name_a
@TableField("user_name_a")
private String userName;
- 不参与SQL的Field
- static
- @TableField
@TableField(exist=false)
private String remark;