MybatisPlus增删改查操作

















UserMapper.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hk.mapper.UserMapper">
    <resultMap id="UserMap" type="com.hk.entity.UserInfo">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="login_id" property="loginId"/>
        <result column="pwd" property="pwd"/>
        <result column="version" property="version"/>
        <result column="status" property="status"/>
        <result column="org_name" property="orgName"/>
    </resultMap>
    <select id="getUserByName" parameterType="String" resultMap="UserMap">
        select u.*,o.name org_name from user u inner join org o on u.org_id=o.id
        where u.name=#{name}
    </select>
    <select id="getUserByLoginId" parameterType="String" resultMap="UserMap">
        select u.*,o.name org_name from user u inner join org o on u.org_id=o.id
        where u.login_id=${loginId}
    </select>
    <select id="queryList" resultType="com.hk.entity.UserInfo">
        select * from user
        ${ew.customSqlSegment}
    </select>
</mapper>

UserMapper.java

java 复制代码
package com.hk.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.hk.entity.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper extends BaseMapper<UserInfo> {
    public List<UserInfo> getUserByName(@Param("name") String name);
    public List<UserInfo> getUserByLoginId(@Param("loginId") String loginId);
    public IPage<UserInfo> queryList(IPage<UserInfo> page, @Param(Constants.WRAPPER) Wrapper<UserInfo> wrapper);
}

IUserService.java

java 复制代码
package com.hk.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hk.entity.UserInfo;
import java.util.List;

public interface IUserService  extends IService<UserInfo> {
    public List<UserInfo> getUserByName(String name);
    public List<UserInfo> getUserByLoginId(String loginId);
    /**
     * 分页查询用户
     * @param pageNo 页码
     * @param pageSize 每页记录数
     * @param queryWrapper
     * @return
     */
    public IPage<UserInfo> queryList(Integer pageNo, Integer pageSize, QueryWrapper<UserInfo> queryWrapper);
}

UserServiceImpl.java

java 复制代码
package com.hk.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hk.entity.UserInfo;
import com.hk.mapper.UserMapper;
import com.hk.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collections;
import java.util.List;

@Service
@Transactional(readOnly=false,rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class UserServiceImpl extends ServiceImpl<UserMapper, UserInfo>
    implements IUserService
{
    @Override
    public List<UserInfo> getUserByName(String name) {
        return baseMapper.getUserByName(name);
    }

    @Override
    public List<UserInfo> getUserByLoginId(String loginId) {
        return baseMapper.getUserByLoginId(loginId);
    }

    @Override
    public IPage<UserInfo> queryList(Integer pageNo, Integer pageSize, QueryWrapper<UserInfo> queryWrapper) {
        if(pageNo == null)
            pageNo = 1;
        if(pageSize == null)
            pageSize = 10;
        Page<UserInfo> p = new Page<>(pageNo, pageSize);
        IPage<UserInfo> pageList = baseMapper.queryList(p,queryWrapper);
        return pageList;
    }
}

UserTests.java

java 复制代码
package com.hk.user;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hk.Starter;
import com.hk.entity.UserInfo;
import com.hk.mapper.UserMapper;
import com.hk.service.IUserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,classes = Starter.class)
public class UserTest {
    @Autowired
    private IUserService userServ;
    @Autowired
    private UserMapper userMapper;

    @Test
    public void saveByMapper(){
        UserInfo user = new UserInfo() ;
        user.setId("100");
        user.setName("Java");
        user.setLoginId("SpringBoot");
        user.setPwd("pwd");
        userMapper.insert(user);
    }

    @Test
    public void saveByService(){
        UserInfo user = new UserInfo() ;
        user.setId("100");
        user.setName("Java");
        user.setLoginId("SpringBoot");
        user.setPwd("pwd");
        boolean save = userServ.save(user);
        String id = user.getId();
        System.out.println("saveByService 结果为:"+ save + "user="+ user);
    }

    @Test
    public void saveBatch(){
        List<UserInfo> userList = new ArrayList<>();
        for(int i = 0 ; i <20 ; i ++){
            UserInfo user = new UserInfo() ;
            user.setId(i+"");
            user.setName("Java");
            user.setLoginId("SpringBoot");
            user.setPwd("pwd");
            userList.add(user);
        }
        boolean isSuccess  = userServ.saveBatch(userList);
        System.out.println("saveBatch 返回结果:"+ isSuccess );
    }

    @Test
    public void delByMapper() {
        int count = userMapper.deleteById("14");
        System.out.println("delByMapper = "+ count);
    }

    @Test
    public void delBatchByMapper() {
        List<String> ids = new ArrayList<>();
        ids.add("12");
        ids.add("13");
        userMapper.deleteBatchIds(ids);
    }

    @Test
    public void delByQueryWrapper() {
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.eq("name","Java");
        userMapper.delete(wrapper);
    }

    @Test
    public void delByLambdaQuery() {
        userMapper.delete(new QueryWrapper<UserInfo>()
                .lambda()
                .eq(UserInfo::getName,"Java")
                .eq(UserInfo::getLoginId,"SpringBoot")
        );
    }

    @Test
    public void updateByService() {
        UserInfo user = new UserInfo() ;
        user.setId("100");
        user.setName("Java");
        user.setLoginId("SpringBoot");
        user.setPwd("pwd");
        boolean b = userServ.updateById(user);
        System.out.println("updateByService:" + b);
    }

    @Test
    public void queryByMapper() {
        userMapper.selectList(new QueryWrapper<UserInfo>()
                .lambda()
                .eq(UserInfo::getName,"Java")
                .eq(UserInfo::getLoginId,"SpringBoot")
        );
    }

    @Test
    public void queryByService() {
        userServ.list(new QueryWrapper<UserInfo>()
                .lambda()
                .eq(UserInfo::getName,"Java")
                .eq(UserInfo::getLoginId,"SpringBoot")
        );
    }

    @Test
    public void queryByParam1() {
        List<UserInfo> lst = userMapper.getUserByName("Java");
        for(UserInfo u:lst)
        {
            System.out.println("#参数 u.name="+u.getName()+",u.orgName="+u.getOrgName());
        }
    }

    @Test
    public void queryByParam2() {
        List<UserInfo> lst = userMapper.getUserByLoginId("1");
        for(UserInfo u:lst)
        {
            System.out.println("#参数 u.name="+u.getName()+",u.orgName="+u.getOrgName());
        }
    }

}
相关推荐
野蛮人6号几秒前
黑马天机学堂系列问题之域名无法正常使用
java·spring cloud·天机学堂
学计算机的计算基3 分钟前
回溯算法下篇:四道经典题讲透约束剪枝、原地标记、预计算与状态压缩
java·笔记·算法
后端优选官21 分钟前
上海Agent开发公司:企业级智能体软件的技术架构与落地评估
数据库·人工智能·架构·软件开发·开发经验·上海
JustNow_Man22 分钟前
`openspec/config.yaml` 解析与生效机制
数据库
Databend26 分钟前
用 QUALIFY 写出更清晰的窗口函数 SQL
数据库·sql·数据分析
数智化管理手记27 分钟前
应收应付资金占用过高怎么办?应收应付搭配账龄分析怎么做
大数据·网络·数据库·人工智能·数据挖掘
用户713335851562433 分钟前
MySQL - EXPLAIN 执行计划
数据库
YDS82935 分钟前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
减瓦44 分钟前
源码视图技术:集 APT 和 AST 所长
java·project lombok