mybatis-plus入门学习-BaseMapper

标签: mybatis plus 学习 | 发表时间:2020-12-11 07:45 | 作者:大田酱紫
出处:https://juejin.im/backend

具体教程参考官网文档: baomidou.com/

入门使用BaseMapper完成增删改查

根据数据库表制作相应实体类

   @TableName(value = "user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String name;

    private String password;

    private String username;
    // 省略set,get
    }
复制代码

创建对应mapper类

   public interface UserMapper extends BaseMapper<User> {
//这里什么都不用写
}
复制代码

由于BaseMapper已经集成了基础的增删改查方法,这里对应的mapper.xml也是不用写的

添加关于mapper包的注册

   @SpringBootApplication
@MapperScan("com.hyx.mybatisplusdemo.mapper")
public class MybatisplusdemoApplication {

public static void main(String[] args) {
SpringApplication.run(MybatisplusdemoApplication.class, args);
}

}
复制代码

修改配置文件

   spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
复制代码

测试类

   @SpringBootTest
class MybatisplusdemoApplicationTests {

@Autowired
UserMapper userMapper;

@Test
void contextLoads() {

User user = userMapper.selectById(7l);
userMapper.deleteById(user);
System.out.println(user);
}

}
复制代码

如果要自定义一些增删改查方法,可以在配置类中添加:

   
##mybatis-plus mapper xml 文件地址
mybatis-plus.mapper-locations= classpath*:mapper/*Mapper.xml
##mybatis-plus type-aliases 文件地址
mybatis-plus.type-aliases-package= com.hyx.mybatisplusdemo.entity
复制代码

然后就与mybatis一样,创建对应的xml文件,去实现相应的方法就可以了

BaseMapper各方法详解

Insert

   // 插入一条记录
int insert(T entity);
复制代码

Delete

   // 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map columnMap);
复制代码

Update

   // 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper updateWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
复制代码

Select

   // 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper);

// 查询(根据ID 批量查询)
List selectBatchIds(@Param(Constants.COLLECTION) Collection idList);
// 根据 entity 条件,查询全部记录
List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
// 查询(根据 columnMap 条件)
List selectByMap(@Param(Constants.COLUMN_MAP) Map columnMap);
// 根据 Wrapper 条件,查询全部记录
List    > selectMaps(@Param(Constants.WRAPPER) Wrapper queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List selectObjs(@Param(Constants.WRAPPER) Wrapper queryWrapper);

// 根据 entity 条件,查询全部记录(并翻页)
IPage selectPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage     > selectMapsPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper queryWrapper);
复制代码       
类型 参数名 描述
Wrapper wrapper 实体对象封装操作类(可以为 null)
Collection idList 主键ID列表(不能为 null 以及 empty)
Serializable id 主键ID
Map columnMap 表字段 map 对象
IPage page 分页查询条件(可以为 RowBounds.DEFAULT)

相关 [mybatis plus 学习] 推荐:

mybatis-plus入门学习-BaseMapper

- - 掘金后端
入门使用BaseMapper完成增删改查. 根据数据库表制作相应实体类. public interface UserMapper extends BaseMapper { //这里什么都不用写 } 复制代码. 由于BaseMapper已经集成了基础的增删改查方法,这里对应的mapper.xml也是不用写的.

mybatis-generator配置

- - 开源软件 - ITeye博客
新项目要用mybatis,为了开发效率和方便开发,研究了mybatis-generate,在maven环境下,通过插件的形式配置,废话不多说. .    由于M2e不支持这个goal,会报错,忽略这个goal就好了,具体原因请看:. 解决办法把下面这段配置添加到与plugins平级目录中即可解决:.

Spring+MyBatis实践——MyBatis访问数据库

- - 开源软件 - ITeye博客
    在http://dufengx201406163237.iteye.com/blog/2102054中描述了工程的配置,在此记录一下如何使用MyBatis访问数据库;. . .

ibatis和mybatis区别

- - SQL - 编程语言 - ITeye博客
简介: 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别,以及从 iBatis 向 MyBatis 移植时需要注意的地方. 通过对本文的学习,读者基本能够了解 MyBatis 有哪些方面的改进,并能够顺利使用 MyBatis 进行开发. 本文更适合有 iBatis 基础的开发人员阅读.

iBatis与MyBatis区别

- - 非技术 - ITeye博客
iBatis 框架的主要优势:. 1、iBatis 封装了绝大多数的 JDBC 样板代码,使得开发者只需关注 SQL 本身,而不需要花费精力去处理例如注册驱动,创建 Connection,以及确保关闭 Connection 这样繁杂的代码. 2、从 iBatis 到 MyBatis,不只是名称上的变化,MyBatis 提供了更为强大的功能,同时并没有损失其易用性,相反,在很多地方都借助于 JDK 的泛型和注解特性进行了简化.

Google Plus新政

- iVane - 槽边往事
本周早些时候,我的Google Plus帐号被停权了. 页面提示上写着:Your account was suspended.理由是我违反了Google Plus的《社区准则》(相关链接),却又没有明确指出我违反了哪一条. 于是,我只好向提交了申诉表单(相关链接). 这一次,Google Plus明确指出,问题出在我的ID“和菜头”,这一ID的命名法违背了《社区准则》的第八条:.

mybatis oracle mysql 批量插入

- - Oracle - 数据库 - ITeye博客
一、oracle的批量插入方式. 二、mysql的批量插入方式. ORA-00918:未明确定义列. 如果不设置列名,那么#{item.senderPhone}的值就是默认列名,那么就有很多概率会产生列名重复,而产生异常. (两个列的值完全可能一样). #{item.receiveTime} 值为null时,必须指定转换类型.

MyBatis的动态SQL详解

- - 编程语言 - ITeye博客
基础部分可以查看我的另一篇博客: http://haohaoxuexi.iteye.com/blog/1333271. MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有:. if就是简单的条件判断,利用if语句我们可以实现某些简单的条件选择.

Mybatis查询延迟加载

- - Elim的个人空间
Mybatis 查询延迟加载. 1.1        启用延迟加载. 1.2        分析.        Mybatis的延迟加载是针对嵌套查询而言的,是指在进行查询的时候先只查询最外层的SQL,对于内层SQL将在需要使用的时候才查询出来. Mybatis的延迟加载默认是关闭的,即默认是一次就将所有的嵌套SQL一并查了将对象所有的信息都查询出来.