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());
        }
    }

}
相关推荐
2501_916008894 分钟前
深入解析iOS应用启动性能优化策略与实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
老神在在00110 分钟前
Spring Bean 的六种作用域详解
java·后端·spring
m0_7489203611 分钟前
Golang goquery怎么解析HTML_Golang goquery教程【核心】
jvm·数据库·python
m0_7467523012 分钟前
golang如何编写Markdown转HTML工具_golang Markdown转HTML工具编写详解
jvm·数据库·python
仙草不加料12 分钟前
互联网大厂Java面试故事实录:三轮场景化技术提问与详细答案解析
java·spring boot·微服务·面试·aigc·电商·内容社区
程序员老邢17 分钟前
【技术底稿 19】Redis7 集群密码配置 + 权限锁死 + 磁盘占满连锁故障真实排查全记录
java·服务器·经验分享·redis·程序人生·微服务
weixin_4249993619 分钟前
C#怎么使用TopLevel顶级语句 C#顶级语句怎么写如何省略Main方法简化控制台程序【语法】
jvm·数据库·python
qq_3721542334 分钟前
如何利用Bootstrap的Flex工具类快速排版
jvm·数据库·python
qq_6543669835 分钟前
golang如何实现菜单权限动态加载_golang菜单权限动态加载实现详解
jvm·数据库·python
落魄江湖行39 分钟前
基础篇一 Java 有了 int 为什么还要 Integer?它们到底差在哪?
java·面试·八股文