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

}
相关推荐
Kethy__2 小时前
计算机中级-数据库系统工程师-计算机体系结构与存储系统
大数据·数据库·数据库系统工程师·计算机中级
SHoM SSER2 小时前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
黄林晴2 小时前
Android 17 取色器 API:无需权限,一行 Intent 跨应用取色
android
standovon3 小时前
Spring Boot整合Redisson的两种方式
java·spring boot·后端
熬夜的咕噜猫3 小时前
MySQL备份与恢复
数据库·oracle
IAUTOMOBILE3 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
hutengyi3 小时前
PostgreSQL版本选择
java
皮皮林5513 小时前
重磅!JetBrains 正式发布全新的 AI 开发工具,定名 AI IDE AIR
java·intellij idea
jnrjian3 小时前
recover database using backup controlfile until cancel 假recover,真一致
数据库·oracle