mybtis-plus 使用教程
1.导入依赖包
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.实体类
package com.von.officialwebsite.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.javassist.bytecode.SignatureAttribute;
import org.springframework.data.relational.core.mapping.Table;
/**
* @author xiaosai
* @version 1.0
* @date 2020-4-26 11:57
* @describe
* @className
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
private String name;
private String mail;
private String telphone;
private String permanentAddress;
}
注意:mybtis-plus 中有自己的id生成规则,id类型必须是Long。如果想使用数据库自增id,可加上@TableId(value = “id”,type = IdType.AUTO)
可以看到 IdType 中
package com.baomidou.mybatisplus.annotation;
import lombok.Getter;
/**
* <p>
* 生成ID类型枚举类
* </p>
*
* @author hubin
* @since 2015-11-10
*/
@Getter
public enum IdType {
/**
* 数据库ID自增
*/
AUTO(0),
/**
* 该类型为未设置主键类型
*/
NONE(1),
/**
* 用户输入ID
* 该类型可以通过自己注册自动填充插件进行填充
*/
INPUT(2),
/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
/**
* 全局唯一ID (idWorker)
*/
ID_WORKER(3),
/**
* 全局唯一ID (UUID)
*/
UUID(4),
/**
* 字符串全局唯一ID (idWorker 的字符串表示)
*/
ID_WORKER_STR(5);
private int key;
IdType(int key) {
this.key = key;
}
}
3.Mapper 接口,无需xml文件
package com.von.officialwebsite.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.von.officialwebsite.pojo.User;
/**
* @author xiaosai
* @version 1.0
* @date 2020-4-26 11:58
* @describe 继承BaseMapper<T>
* @className
*/
public interface UserMapper extends BaseMapper<User> {
}
4.测试调用
package com.von.officialwebsite;
import com.von.officialwebsite.mapper.UserMapper;
import com.von.officialwebsite.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class OfficialwebsiteApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
User user = new User();
// user.setId(3);
user.setName("中国");
user.setPermanentAddress("北京市朝阳区");
userMapper.insert(user);
}
}
结果输出
到此整个过程完结
其中,可能会遇到一些异常问题,比如://java.sql.SQLException: Failed to read auto-increment value from storage engine 可以尝试将数据库中的id自增选项取消-保存,再重新勾选-保存