0
点赞
收藏
分享

微信扫一扫

MyBatis-Plus环境搭建与基础注解说明

环境要求

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;
举报

相关推荐

0 条评论