文章总览:YuanDaiMa2048博客文章总览
在这个文章中,将介绍如何使用 MybatisPlus 来简化常见的 CRUD(增删改查)操作。MybatisPlus 是 MyBatis 的增强工具,提供了许多便利的功能,让我们能够更轻松地与数据库交互。下面将一步步介绍如何使用 MybatisPlus 完成基本的增删改查操作。
首先,需要在 Maven 或 Gradle 项目中引入 MybatisPlus 的依赖。可以使用 MybatisPlus 提供的 starter,它集成了 Mybatis 和 MybatisPlus 的所有功能,并实现了自动装配效果。你可以通过以下方式引入依赖:
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.5.3.1version>
dependency>
接下来,需要定义 Mapper 接口来操作数据库。可以简单地继承 MybatisPlus 提供的 BaseMapper 接口,并指定实体类的类型。例如:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
这里的 User
是你的实体类,确保它与数据库中的表对应,并且包含了正确的字段和注解。
一旦我们定义了 Mapper 接口,我们就可以直接使用 MybatisPlus 提供的方法来进行 CRUD 操作。这些方法以 insert
、delete
、update
和 select
开头,非常直观和易于理解。以下是一些示例:
User user = new User();
user.setName("John");
user.setAge(25);
user.setEmail("[email protected]");
userMapper.insert(user);
userMapper.deleteById(1L); // 根据主键删除
User user = userMapper.selectById(1L); // 根据主键查询
user.setAge(30);
userMapper.updateById(user);
List<User> userList = userMapper.selectList(null); // 查询所有用户
以上是简单的示例,你可以根据实际需求调用不同的方法来完成各种操作。
在 MybatisPlus 中,通过注解可以更精确地指定实体类与数据库表之间的映射关系,包括表名、主键字段以及普通字段等信息。下面我们将介绍如何使用注解来完善这些映射关系。
@TableName
注解用于指定实体类对应的数据库表名,特别是在实体类名与数据库表名不一致时非常有用。示例如下:
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user_info")
public class User {
// 实体类的定义...
}
@TableId
注解用于指定实体类中作为主键的字段信息,可以指定主键类型以及主键生成策略。示例如下:
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
public class User {
@TableId(type = IdType.AUTO)
private Long userId;
// 其他字段...
}
@TableField
注解用于指定实体类中的普通字段与数据库表中字段的映射关系,特别是在字段名与数据库字段名不一致或者需要特别处理的情况下使用。示例如下:
import com.baomidou.mybatisplus.annotation.TableField;
public class User {
@TableField(value = "user_name")
private String name;
@TableField(value = "is_vip")
private Boolean vipUser;
// 其他字段...
}
IdType
枚举用于指定主键生成策略,常见的有 AUTO、INPUT、ASSIGN_ID 等。示例如下:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
public class User {
@TableId(type = IdType.AUTO)
private Long userId;
// 其他字段...
}
以上是使用注解来完善实体类与数据库表的映射关系的示例。通过合理地使用这些注解,我们可以更灵活地操作数据库,提高开发效率。
mybatis-plus:
type-aliases-package: com.itheima.mp.domain.po # 别名扫描包
mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,默认值
configuration:
map-underscore-to-camel-case: true # 是否开启下划线和驼峰的映射
cache-enabled: false # 是否开启二级缓存
global-config:
db-config:
id-type: assign_id # id为雪花算法生成
update-strategy: not_null # 更新策略:只更新非空字段
通过 MybatisPlus,我们可以大大简化 CRUD 操作的代码量,提高开发效率。希望本文能够帮助你更好地理解如何使用 MybatisPlus。