Mybatis-Plus实现简单的增删改查 实体类上的注解(二)

简介: Mybatis-Plus实现简单的增删改查 实体类上的注解(二)

2.3 改(update)

根据主键id修改(updateById)


@Test 
public void updateByIdTest() {
    User user = new User();
    user.setId(4L);
    user.setName("张三");
    user.setAge(20);
    // UPDATE user SET name=?, age=? WHERE id=?
    int result = mapper.updateById(user);
    System.out.println("受影响的行数: " + result); 
}


2.4 查(select)

根据主键id查找一条记录(selectById)


@Test public void selectTest() {
    // SELECT id,name,age,email FROM user WHERE id=?
    User user = mapper.selectById(4L);
    System.out.println("查询结果为:" + user); 
}


根据主键id查找多条记录(selectBatchIds)


@Test 
public void selectByBatchIdsTest() {
   List<Long> list = Arrays.asList(4L, 5L);
   // SELECT id,name,age,email FROM user WHERE id IN ( ? , ? )
   List<User> users = mapper.selectBatchIds(list);
   System.out.print("查询结果为:");
   users.forEach(System.out::println); 
}


多条件查询(selectByMap)


@Test 
public void selectByMapTest() {
    HashMap<String, Object> map = new HashMap<>();
    map.put("name", "张三");
    map.put("age", 20);
    // SELECT id,name,age,email FROM user WHERE name = ? AND age = ?
    List<User> users = mapper.selectByMap(map);
    System.out.print("查询结果为:");
    users.forEach(System.out::println); 
}


查询表中所有的记录(selectList)


@Test 
public void selectListTest() {
    // SELECT id,name,age,email FROM user
    List<User> users = mapper.selectList(null);
    users.forEach(System.out::println); 
}


mapper层增删改查方法中的小知识点


⚠ 所有的增删改方法返回值都是受影响的行(记录)数

⚠ 以上都是单表的简单增删改查操作,如果这些功能无法满足你的需求,可以自定义SQL。可以在默认的路径(resources文件夹下的mapper文件夹)下创建mapper映射文件,或者在别的地方创建映射文件使用配置文件指定(mybatis-plus.mapper-locations),其他的操作和mybatis一样(接口方法、映射文件、调用方法)


3 service层的CRUD方法

 service层接口继承IService接口并传入需要操作的实体类泛型


public interface UserService extends IService<User> {
}


 service接口的实现类除了实现接口之外,还要继承ServiceImpl类并传入传泛型(mapper层接口,实体类),这样做的好处是还可以在实现类里实现自定义业务方法


@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}


3.1 批量添加或者更新

批量添加saveBatch



@Test
public void saveBatchTest() {
    // INSERT INTO user ( id, name, age ) VALUES ( ?, ?, ? )
    List<User> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        User user = new User();
        user.setName("tom" + i);
        user.setAge(20 + i);
        list.add(user);
    }
    boolean b = userService.saveBatch(list);
    System.out.println(b);
}


批量添加或者更新saveOrUpdateBatch

 第二个方法既可以用于批量添加还可以皮力量更新,判断是批量添加还是更新的依据是:看传入的列表中实体类对象是否设置了id属性或者说这个id值在表中是否存在,如果设置了id且id在表中存在的话就是批量更新,如果不设置id属性或者表中没有这个字段值的话就是批量添加。简而言之,有则改无则添


// 批量修改(因为user对象设置的id属性在表中存在)
@Test
public void saveOrUpdateBatchTest() {
    // UPDATE user SET name=?, age=? WHERE id=?
    List<User> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        User user = new User();
        user.setId(10L + i);
        user.setName("jack" + i);
        user.setAge(20 + i);
        list.add(user);
    }
    boolean b = userService.saveOrUpdateBatch(list);
    System.out.println(b);
}


3.2 查询表中总记录数

@Test
public void getCountTest() {
    // SELECT COUNT( * ) FROM user
    long count = userService.count();
    System.out.println(count);
}


相关文章
|
3天前
|
SQL Java 数据库
5、Mybatis-Plus 常用注解
这篇文章详细介绍了Mybatis-Plus中常用的注解,包括解决实体类与数据库表名不一致、字段不匹配的问题,主键生成策略的配置,以及逻辑删除的实现方法。
|
3天前
|
SQL Java 数据库
5、Mybatis-Plus 常用注解
这篇文章详细介绍了Mybatis-Plus中常用的注解,包括解决实体类与数据库表名不一致、字段不匹配的问题,主键生成策略的配置,以及逻辑删除的实现方法。
5、Mybatis-Plus 常用注解
|
5天前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
22天前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
24 3
|
4天前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
14 0
|
4天前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
1月前
|
Java 数据库连接 Maven
文本,使用SpringBoot工程创建一个Mybatis-plus项目,Mybatis-plus在编写数据层接口,用extends BaseMapper<User>继承实体类
文本,使用SpringBoot工程创建一个Mybatis-plus项目,Mybatis-plus在编写数据层接口,用extends BaseMapper<User>继承实体类
|
2月前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
28 3
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
|
1月前
|
数据库
MybatisPlus3---常用注解,驼峰转下滑线作为表明 cteateTime 数据表中的 cteate_time,@TableField,与数据库字段冲突要使用转义字符“`order`“,is
MybatisPlus3---常用注解,驼峰转下滑线作为表明 cteateTime 数据表中的 cteate_time,@TableField,与数据库字段冲突要使用转义字符“`order`“,is