MybatisPlus基础增删查改《一》

本文介绍了MybatisPlus的CRUD操作,包括deleteById方法,即使数据库主键非'id'也能进行删除。接着讨论了insert操作,当实体类名称与数据库表名不一致时如何避免错误。此外,还详细说明了实体类的@TableId和@TableFileId注解的使用,用于指定主键和主键生成策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. CRUD

1.1 delete

1.1.1 deleteById 根据主键ID删除,不管主键名称是不是id

即使数据库主键不是id也能删除,比如我的数据库主键是:user_id

 int deleteById(Serializable id);

1.2 insert

用mybatisPlus生成的实体类其实是和数据库的名称相同的,只是把下划线换成了大写

如果你改变了实体类的名称,比如原本数据库的表名称是repository_data 生成的实体类是RepositoryData

但是你把实体类改成了Repository,这个时候用原本的insert方法就会报错

怎么办呢?在实体类上添加一个注解就好了,同时注意把你的XML里面的也要改了

@TableName("repository_data")
public class Repository extends Model<Repository> {
}
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="xxxxx.RepositoryData">

</resultMap>

插入操作自动把主键设置到了对象了,insert方法没用插入的字段sql语句并不会插入

2. 实体类注解

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "UserData对象", description = "")
public class UserData extends Model<UserData> {


    private static final long serialVersionUID = -8593694456042317006L;
    @ApiModelProperty(value = "用户主键")
    @TableId(value = "user_id", type = IdType.UUID)
    private String userId;
}

2.1 @TableId

当数据库字段不上id的时候要指定,比如下面的一定要指定

@TableId(value = "user_id", type = IdType.UUID)
private String userId;

下面的的不需要指定

@TableId( type = IdType.UUID)
private String id;

主键生成策略,我的主键都是UUID,所以是这个type = IdType.UUID如果你的主键是自增的化就是默认的type = IdType.AUTO

2.2 TableFileId

Spring Boot集成MyBatis Plus可以非常简便地实现增删查改操作。下面是个简单的示例: 1. 引入相关依赖: ```xml <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本</version> </dependency> ``` 2. 配置数据库连接: 在`application.properties`或`application.yml`中配置数据库连接信息,例如: ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=username spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 3. 创建实体类: 创建与数据库表对应的实体类,并使用MyBatis Plus的注解进行字段映射。 4. 创建Mapper接口: 创建个继承自`BaseMapper`的Mapper接口,该接口不需要实现任何方法,MyBatis Plus会根据命名规范自动实现CURD操作。 5. 编写Service层: 创建个Service类,通过使用`@Autowired`注解注入Mapper接口,即可实现对数据库的增删查改操作。 下面是个简单的示例代码: 实体类: ```java @Data public class User { private Long id; private String name; private Integer age; } ``` Mapper接口: ```java public interface UserMapper extends BaseMapper<User> { } ``` Service类: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> getAllUsers() { return userMapper.selectList(null); } public User getUserById(Long id) { return userMapper.selectById(id); } public void addUser(User user) { userMapper.insert(user); } public void updateUser(User user) { userMapper.updateById(user); } public void deleteUser(Long id) { userMapper.deleteById(id); } } ``` 这样,你就可以在Controller层调用Service层的方法来完成增删查改操作了。 这只是个简单的示例,实际应用可能还需要处理异常、分页查询等其他操作。希望对你有所帮助!如果有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值