zoukankan      html  css  js  c++  java
  • 框架 Spring Boot 技术入门到整合 8-2 整合mybatis-实现基于mybatis的CRUD功能

    0    课程地址:

    https://www.imooc.com/video/16788

    1    重要知识点:
    1.1  mybatis常用注解:

    @MapperScan  

    mybatis扫描Mapper路径,用于springboot 启动类

    @ComponentScan

    扫描 所需要的包,包含自用的工具类包所在路径,主要是第三方包(不在启动类下路径的包)

    1.2  mapper的两种update方法:
           userMapper.updateByPrimaryKeySelective(user);(有值则更新,无值不更新)
           userMapper.updateByPrimaryKey(user);(有值无值都会更新)
    1.3  关于分页:
           一共15条,每页10条,第二页是5条,第100页也是5条
    
    2    代码演练:
    2.1  insert  demo

    启动类:

    package com.example.demo;
    
    import tk.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication
    
    //扫描mybaties mapper包路径
    @MapperScan(basePackages = "com.example.demo.mapper")
    
    //扫描 所需要的包,包含自用的工具类包所在路径
    @ComponentScan(basePackages={"com.example.demo","org.n3r.idworker"})
    
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }

    Controller类:

    package com.example.demo.controller;
    
    /**
     * MyBatisCRUDController
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    import com.example.demo.tools.JSONResult;
    import org.n3r.idworker.Sid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    import java.util.List;
    
    @RestController
    @RequestMapping("mybatis")
    public class MyBatisCRUDController {
    
        @Autowired
        private UserService userService;
    
        @Autowired
        private Sid sid;
    
        @RequestMapping("/saveUser")
        public JSONResult saveUser() throws Exception {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("imooc" + new Date());
            user.setNickname("imooc" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/updateUser")
        public JSONResult updateUser() {
    
            SysUser user = new SysUser();
            user.setId("10011001");
            user.setUsername("10011001-updated" + new Date());
            user.setNickname("10011001-updated" + new Date());
            user.setPassword("10011001-updated");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.updateUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/deleteUser")
        public JSONResult deleteUser(String userId) {
    
            userService.deleteUser(userId);
    
            return JSONResult.ok("删除成功");
        }
    
        @RequestMapping("/queryUserById")
        public JSONResult queryUserById(String userId) {
    
            return JSONResult.ok(userService.queryUserById(userId));
        }
    
        @RequestMapping("/queryUserList")
        public JSONResult queryUserList() {
    
            SysUser user = new SysUser();
            user.setUsername("imooc");
            user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserList(user);
    
            return JSONResult.ok(userList);
        }
    
        @RequestMapping("/queryUserListPaged")
        public JSONResult queryUserListPaged(Integer page) {
    
            if (page == null) {
                page = 1;
            }
    
            int pageSize = 10;
    
            SysUser user = new SysUser();
    //        user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    
            return JSONResult.ok(userList);
        }
    
       /* @RequestMapping("/queryUserByIdCustom")
        public JSONResult queryUserByIdCustom(String userId) {
    
            return JSONResult.ok(userService.queryUserByIdCustom(userId));
        }*/
    
        @RequestMapping("/saveUserTransactional")
        public JSONResult saveUserTransactional() {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("lee" + new Date());
            user.setNickname("lee" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUserTransactional(user);
    
            return JSONResult.ok("保存成功");
        }
    }

    Service接口:

    package com.example.demo.service;
    
    /**
     * UserService
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    
    import java.util.List;
    
    
    public interface UserService {
    
        public void saveUser(SysUser user) throws Exception;
    
        public void updateUser(SysUser user);
    
        public void deleteUser(String userId);
    
        public SysUser queryUserById(String userId);
    
        public List<SysUser> queryUserList(SysUser user);
    
        public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize);
    
        /*public SysUser queryUserByIdCustom(String userId);*/
    
        public void saveUserTransactional(SysUser user);
    }

    Service实现类:

    package com.example.demo.service.impl;
    
    /**
     * UserServiceImpl
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    import java.util.List;
    
    import com.example.demo.mapper.SysUserMapper;
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    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 org.thymeleaf.util.StringUtils;
    
    import com.github.pagehelper.PageHelper;
    
    import tk.mybatis.mapper.entity.Example;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private SysUserMapper userMapper;
    
        /*@Autowired
        private SysUserMapperCustom userMapperCustom;*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUser(SysUser user) throws Exception {
    
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //mybaties jar包中的方法
            userMapper.insert(user);
        }
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void updateUser(SysUser user) {
            userMapper.updateByPrimaryKeySelective(user);
    //        userMapper.updateByPrimaryKey(user);
        }
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void deleteUser(String userId) {
            userMapper.deleteByPrimaryKey(userId);
        }
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS)
        public SysUser queryUserById(String userId) {
    
            try {
                Thread.sleep(6000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            return userMapper.selectByPrimaryKey(userId);
        }
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS)
        public List<SysUser> queryUserList(SysUser user) {
    
            try {
                Thread.sleep(11000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            Example example = new Example(SysUser.class);
            Example.Criteria criteria = example.createCriteria();
    
            if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) {
    //            criteria.andEqualTo("username", user.getUsername());
                criteria.andLike("username", "%" + user.getUsername() + "%");
            }
    
            if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) {
                criteria.andLike("nickname", "%" + user.getNickname() + "%");
            }
    
            List<SysUser> userList = userMapper.selectByExample(example);
    
            return userList;
        }
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS)
        public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) {
            // 开始分页
            PageHelper.startPage(page, pageSize);
    
            Example example = new Example(SysUser.class);
            Example.Criteria criteria = example.createCriteria();
    
            if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) {
                criteria.andLike("nickname", "%" + user.getNickname() + "%");
            }
            example.orderBy("registTime").desc();
            List<SysUser> userList = userMapper.selectByExample(example);
    
            return userList;
        }
    
        /*@Override
        @Transactional(propagation = Propagation.SUPPORTS)
        public SysUser queryUserByIdCustom(String userId) {
    
            List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId);
    
            if (userList != null && !userList.isEmpty()) {
                return (SysUser)userList.get(0);
            }
    
            return null;
        }*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUserTransactional(SysUser user) {
    
            userMapper.insert(user);
    
            int a = 1 / 0;
    
            user.setIsDelete(1);
            userMapper.updateByPrimaryKeySelective(user);
        }
    }

    生成的mapper类:

    package com.example.demo.mapper;
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.tools.MyMapper;
    
    
    public interface SysUserMapper extends MyMapper<SysUser> {
    }

    生成的pojo类:

    package com.example.demo.pojo;
    
    import java.util.Date;
    import javax.persistence.*;
    
    @Table(name = "sys_user")
    public class SysUser {
        @Id
        private String id;
    
        /**
         * 用户名,登录名
         */
        private String username;
    
        /**
         * 密码
         */
        private String password;
    
        /**
         * 昵称
         */
        private String nickname;
    
        /**
         * 年龄
         */
        private Integer age;
    
        /**
         * 性别
    0:女
    1:男
    2:保密 
         */
        private Integer sex;
    
        /**
         * 职业类型:
    1:Java开发
    2:前端开发
    3:大数据开发
    4:ios开发
    5:Android开发
    6:Linux系统工程师
    7:PHP开发
    8:.net开发
    9:C/C++
    10:学生
    11:其它
         */
        private Integer job;
    
        /**
         * 头像地址
         */
        @Column(name = "face_image")
        private String faceImage;
    
        /**
         * 省
         */
        private String province;
    
        /**
         * 市
         */
        private String city;
    
        /**
         * 区
         */
        private String district;
    
        /**
         * 详细地址
         */
        private String address;
    
        /**
         * 用于权限的“盐”
         */
        @Column(name = "auth_salt")
        private String authSalt;
    
        /**
         * 最后一次登录IP
         */
        @Column(name = "last_login_ip")
        private String lastLoginIp;
    
        /**
         * 最后一次登录时间
         */
        @Column(name = "last_login_time")
        private Date lastLoginTime;
    
        @Column(name = "is_delete")
        private Integer isDelete;
    
        @Column(name = "regist_time")
        private Date registTime;
    
        /**
         * @return id
         */
        public String getId() {
            return id;
        }
    
        /**
         * @param id
         */
        public void setId(String id) {
            this.id = id;
        }
    
        /**
         * 获取用户名,登录名
         *
         * @return username - 用户名,登录名
         */
        public String getUsername() {
            return username;
        }
    
        /**
         * 设置用户名,登录名
         *
         * @param username 用户名,登录名
         */
        public void setUsername(String username) {
            this.username = username;
        }
    
        /**
         * 获取密码
         *
         * @return password - 密码
         */
        public String getPassword() {
            return password;
        }
    
        /**
         * 设置密码
         *
         * @param password 密码
         */
        public void setPassword(String password) {
            this.password = password;
        }
    
        /**
         * 获取昵称
         *
         * @return nickname - 昵称
         */
        public String getNickname() {
            return nickname;
        }
    
        /**
         * 设置昵称
         *
         * @param nickname 昵称
         */
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
    
        /**
         * 获取年龄
         *
         * @return age - 年龄
         */
        public Integer getAge() {
            return age;
        }
    
        /**
         * 设置年龄
         *
         * @param age 年龄
         */
        public void setAge(Integer age) {
            this.age = age;
        }
    
        /**
         * 获取性别
    0:女
    1:男
    2:保密 
         *
         * @return sex - 性别
    0:女
    1:男
    2:保密 
         */
        public Integer getSex() {
            return sex;
        }
    
        /**
         * 设置性别
    0:女
    1:男
    2:保密 
         *
         * @param sex 性别
    0:女
    1:男
    2:保密 
         */
        public void setSex(Integer sex) {
            this.sex = sex;
        }
    
        /**
         * 获取职业类型:
    1:Java开发
    2:前端开发
    3:大数据开发
    4:ios开发
    5:Android开发
    6:Linux系统工程师
    7:PHP开发
    8:.net开发
    9:C/C++
    10:学生
    11:其它
         *
         * @return job - 职业类型:
    1:Java开发
    2:前端开发
    3:大数据开发
    4:ios开发
    5:Android开发
    6:Linux系统工程师
    7:PHP开发
    8:.net开发
    9:C/C++
    10:学生
    11:其它
         */
        public Integer getJob() {
            return job;
        }
    
        /**
         * 设置职业类型:
    1:Java开发
    2:前端开发
    3:大数据开发
    4:ios开发
    5:Android开发
    6:Linux系统工程师
    7:PHP开发
    8:.net开发
    9:C/C++
    10:学生
    11:其它
         *
         * @param job 职业类型:
    1:Java开发
    2:前端开发
    3:大数据开发
    4:ios开发
    5:Android开发
    6:Linux系统工程师
    7:PHP开发
    8:.net开发
    9:C/C++
    10:学生
    11:其它
         */
        public void setJob(Integer job) {
            this.job = job;
        }
    
        /**
         * 获取头像地址
         *
         * @return face_image - 头像地址
         */
        public String getFaceImage() {
            return faceImage;
        }
    
        /**
         * 设置头像地址
         *
         * @param faceImage 头像地址
         */
        public void setFaceImage(String faceImage) {
            this.faceImage = faceImage;
        }
    
        /**
         * 获取省
         *
         * @return province - 省
         */
        public String getProvince() {
            return province;
        }
    
        /**
         * 设置省
         *
         * @param province 省
         */
        public void setProvince(String province) {
            this.province = province;
        }
    
        /**
         * 获取市
         *
         * @return city - 市
         */
        public String getCity() {
            return city;
        }
    
        /**
         * 设置市
         *
         * @param city 市
         */
        public void setCity(String city) {
            this.city = city;
        }
    
        /**
         * 获取区
         *
         * @return district - 区
         */
        public String getDistrict() {
            return district;
        }
    
        /**
         * 设置区
         *
         * @param district 区
         */
        public void setDistrict(String district) {
            this.district = district;
        }
    
        /**
         * 获取详细地址
         *
         * @return address - 详细地址
         */
        public String getAddress() {
            return address;
        }
    
        /**
         * 设置详细地址
         *
         * @param address 详细地址
         */
        public void setAddress(String address) {
            this.address = address;
        }
    
        /**
         * 获取用于权限的“盐”
         *
         * @return auth_salt - 用于权限的“盐”
         */
        public String getAuthSalt() {
            return authSalt;
        }
    
        /**
         * 设置用于权限的“盐”
         *
         * @param authSalt 用于权限的“盐”
         */
        public void setAuthSalt(String authSalt) {
            this.authSalt = authSalt;
        }
    
        /**
         * 获取最后一次登录IP
         *
         * @return last_login_ip - 最后一次登录IP
         */
        public String getLastLoginIp() {
            return lastLoginIp;
        }
    
        /**
         * 设置最后一次登录IP
         *
         * @param lastLoginIp 最后一次登录IP
         */
        public void setLastLoginIp(String lastLoginIp) {
            this.lastLoginIp = lastLoginIp;
        }
    
        /**
         * 获取最后一次登录时间
         *
         * @return last_login_time - 最后一次登录时间
         */
        public Date getLastLoginTime() {
            return lastLoginTime;
        }
    
        /**
         * 设置最后一次登录时间
         *
         * @param lastLoginTime 最后一次登录时间
         */
        public void setLastLoginTime(Date lastLoginTime) {
            this.lastLoginTime = lastLoginTime;
        }
    
        /**
         * @return is_delete
         */
        public Integer getIsDelete() {
            return isDelete;
        }
    
        /**
         * @param isDelete
         */
        public void setIsDelete(Integer isDelete) {
            this.isDelete = isDelete;
        }
    
        /**
         * @return regist_time
         */
        public Date getRegistTime() {
            return registTime;
        }
    
        /**
         * @param registTime
         */
        public void setRegistTime(Date registTime) {
            this.registTime = registTime;
        }
    }

    生成的相关mapper.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.example.demo.mapper.SysUserMapper" >
      <resultMap id="BaseResultMap" type="com.example.demo.pojo.SysUser" >
        <!--
          WARNING - @mbg.generated
        -->
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
        <result column="nickname" property="nickname" jdbcType="VARCHAR" />
        <result column="age" property="age" jdbcType="INTEGER" />
        <result column="sex" property="sex" jdbcType="INTEGER" />
        <result column="job" property="job" jdbcType="INTEGER" />
        <result column="face_image" property="faceImage" jdbcType="VARCHAR" />
        <result column="province" property="province" jdbcType="VARCHAR" />
        <result column="city" property="city" jdbcType="VARCHAR" />
        <result column="district" property="district" jdbcType="VARCHAR" />
        <result column="address" property="address" jdbcType="VARCHAR" />
        <result column="auth_salt" property="authSalt" jdbcType="VARCHAR" />
        <result column="last_login_ip" property="lastLoginIp" jdbcType="VARCHAR" />
        <result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP" />
        <result column="is_delete" property="isDelete" jdbcType="INTEGER" />
        <result column="regist_time" property="registTime" jdbcType="TIMESTAMP" />
      </resultMap>
    </mapper>

    测试:

     

    2.2  update  demo(注意:两种update方式,看本节1.2)

    启动类:(同上)

    Controller类:

    package com.example.demo.controller;
    
    /**
     * MyBatisCRUDController
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    import com.example.demo.tools.JSONResult;
    import org.n3r.idworker.Sid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    import java.util.List;
    
    @RestController
    @RequestMapping("mybatis")
    public class MyBatisCRUDController {
    
        @Autowired
        private UserService userService;
    
        @Autowired
        private Sid sid;
    
       @RequestMapping("/saveUser")
        public JSONResult saveUser() throws Exception {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("imooc" + new Date());
            user.setNickname("imooc" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/updateUser")
        public JSONResult updateUser() {
    
            SysUser user = new SysUser();
            user.setId("10011001");
            user.setUsername("10011001-updated" + new Date());
            user.setNickname("10011001-updated" + new Date());
            user.setPassword("10011001-updated");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.updateUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/deleteUser")
        public JSONResult deleteUser(String userId) {
    
            userService.deleteUser(userId);
    
            return JSONResult.ok("删除成功");
        }
    
        @RequestMapping("/queryUserById")
        public JSONResult queryUserById(String userId) {
    
            return JSONResult.ok(userService.queryUserById(userId));
        }
    
        @RequestMapping("/queryUserList")
        public JSONResult queryUserList() {
    
            SysUser user = new SysUser();
            user.setUsername("imooc");
            user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserList(user);
    
            return JSONResult.ok(userList);
        }
    
        @RequestMapping("/queryUserListPaged")
        public JSONResult queryUserListPaged(Integer page) {
    
            if (page == null) {
                page = 1;
            }
    
            int pageSize = 10;
    
            SysUser user = new SysUser();
    //        user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    
            return JSONResult.ok(userList);
        }
    
       /* @RequestMapping("/queryUserByIdCustom")
        public JSONResult queryUserByIdCustom(String userId) {
    
            return JSONResult.ok(userService.queryUserByIdCustom(userId));
        }*/
    
        @RequestMapping("/saveUserTransactional")
        public JSONResult saveUserTransactional() {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("lee" + new Date());
            user.setNickname("lee" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUserTransactional(user);
    
            return JSONResult.ok("保存成功");
        }
    }

    Service接口:(同上)

    Service实现类:

    package com.example.demo.service.impl;
    
    /**
     * UserServiceImpl
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    import java.util.List;
    
    import com.example.demo.mapper.SysUserMapper;
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    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 org.thymeleaf.util.StringUtils;
    
    import com.github.pagehelper.PageHelper;
    
    import tk.mybatis.mapper.entity.Example;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private SysUserMapper userMapper;
    
        /*@Autowired
        private SysUserMapperCustom userMapperCustom;*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUser(SysUser user) throws Exception {
    
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //mybaties jar包中的方法
            userMapper.insert(user);
        }
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void updateUser(SysUser user) {
         userMapper.updateByPrimaryKeySelective(user);
    // userMapper.updateByPrimaryKey(user); } @Override @Transactional(propagation = Propagation.REQUIRED) public void deleteUser(String userId) { userMapper.deleteByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserById(String userId) { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return userMapper.selectByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserList(SysUser user) { try { Thread.sleep(11000); } catch (InterruptedException e) { e.printStackTrace(); } Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) { // criteria.andEqualTo("username", user.getUsername()); criteria.andLike("username", "%" + user.getUsername() + "%"); } if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } List<SysUser> userList = userMapper.selectByExample(example); return userList; } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) { // 开始分页 PageHelper.startPage(page, pageSize); Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } example.orderBy("registTime").desc(); List<SysUser> userList = userMapper.selectByExample(example); return userList; } /*@Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserByIdCustom(String userId) { List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId); if (userList != null && !userList.isEmpty()) { return (SysUser)userList.get(0); } return null; }*/ @Override @Transactional(propagation = Propagation.REQUIRED) public void saveUserTransactional(SysUser user) { userMapper.insert(user); int a = 1 / 0; user.setIsDelete(1); userMapper.updateByPrimaryKeySelective(user); } }

    生成的mapper类:(同上)

    生成的pojo类:(同上)

    生成的相关mapper.xml(同上)

    测试:

     

    2.3  delete  demo(注意:json页面传参)

    启动类:(同上)

    Controller类:

    package com.example.demo.controller;
    
    /**
     * MyBatisCRUDController
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    import com.example.demo.tools.JSONResult;
    import org.n3r.idworker.Sid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    import java.util.List;
    
    @RestController
    @RequestMapping("mybatis")
    public class MyBatisCRUDController {
    
        @Autowired
        private UserService userService;
    
        @Autowired
        private Sid sid;
    
       @RequestMapping("/saveUser")
        public JSONResult saveUser() throws Exception {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("imooc" + new Date());
            user.setNickname("imooc" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/updateUser")
        public JSONResult updateUser() {
    
            SysUser user = new SysUser();
            user.setId("10011001");
            user.setUsername("10011001-updated" + new Date());
            user.setNickname("10011001-updated" + new Date());
            user.setPassword("10011001-updated");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.updateUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/deleteUser")
        public JSONResult deleteUser(String userId) {
    
            userService.deleteUser(userId);
    
            return JSONResult.ok("删除成功");
        }
    
        @RequestMapping("/queryUserById")
        public JSONResult queryUserById(String userId) {
    
            return JSONResult.ok(userService.queryUserById(userId));
        }
    
        @RequestMapping("/queryUserList")
        public JSONResult queryUserList() {
    
            SysUser user = new SysUser();
            user.setUsername("imooc");
            user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserList(user);
    
            return JSONResult.ok(userList);
        }
    
        @RequestMapping("/queryUserListPaged")
        public JSONResult queryUserListPaged(Integer page) {
    
            if (page == null) {
                page = 1;
            }
    
            int pageSize = 10;
    
            SysUser user = new SysUser();
    //        user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    
            return JSONResult.ok(userList);
        }
    
       /* @RequestMapping("/queryUserByIdCustom")
        public JSONResult queryUserByIdCustom(String userId) {
    
            return JSONResult.ok(userService.queryUserByIdCustom(userId));
        }*/
    
        @RequestMapping("/saveUserTransactional")
        public JSONResult saveUserTransactional() {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("lee" + new Date());
            user.setNickname("lee" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUserTransactional(user);
    
            return JSONResult.ok("保存成功");
        }
    }

    Service接口:(同上)

    Service实现类:

    package com.example.demo.service.impl;
    
    /**
     * UserServiceImpl
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    import java.util.List;
    
    import com.example.demo.mapper.SysUserMapper;
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    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 org.thymeleaf.util.StringUtils;
    
    import com.github.pagehelper.PageHelper;
    
    import tk.mybatis.mapper.entity.Example;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private SysUserMapper userMapper;
    
        /*@Autowired
        private SysUserMapperCustom userMapperCustom;*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUser(SysUser user) throws Exception {
    
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //mybaties jar包中的方法
            userMapper.insert(user);
        }
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void updateUser(SysUser user) {
         userMapper.updateByPrimaryKeySelective(user); // userMapper.updateByPrimaryKey(user); } @Override @Transactional(propagation = Propagation.REQUIRED) public void deleteUser(String userId) { userMapper.deleteByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserById(String userId) { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return userMapper.selectByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserList(SysUser user) { try { Thread.sleep(11000); } catch (InterruptedException e) { e.printStackTrace(); } Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) { // criteria.andEqualTo("username", user.getUsername()); criteria.andLike("username", "%" + user.getUsername() + "%"); } if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } List<SysUser> userList = userMapper.selectByExample(example); return userList; } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) { // 开始分页 PageHelper.startPage(page, pageSize); Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } example.orderBy("registTime").desc(); List<SysUser> userList = userMapper.selectByExample(example); return userList; } /*@Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserByIdCustom(String userId) { List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId); if (userList != null && !userList.isEmpty()) { return (SysUser)userList.get(0); } return null; }*/ @Override @Transactional(propagation = Propagation.REQUIRED) public void saveUserTransactional(SysUser user) { userMapper.insert(user); int a = 1 / 0; user.setIsDelete(1); userMapper.updateByPrimaryKeySelective(user); } }

    生成的mapper类:(同上)

    生成的pojo类:(同上)

    生成的相关mapper.xml(同上)

    测试:

     

    2.4  select  demo(根据主键查询):

    启动类:(同上)

    Controller类:

    package com.example.demo.controller;
    
    /**
     * MyBatisCRUDController
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    import com.example.demo.tools.JSONResult;
    import org.n3r.idworker.Sid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    import java.util.List;
    
    @RestController
    @RequestMapping("mybatis")
    public class MyBatisCRUDController {
    
        @Autowired
        private UserService userService;
    
        @Autowired
        private Sid sid;
    
       @RequestMapping("/saveUser")
        public JSONResult saveUser() throws Exception {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("imooc" + new Date());
            user.setNickname("imooc" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/updateUser")
        public JSONResult updateUser() {
    
            SysUser user = new SysUser();
            user.setId("10011001");
            user.setUsername("10011001-updated" + new Date());
            user.setNickname("10011001-updated" + new Date());
            user.setPassword("10011001-updated");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.updateUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/deleteUser")
        public JSONResult deleteUser(String userId) {
    
            userService.deleteUser(userId);
    
            return JSONResult.ok("删除成功");
        }
    
        @RequestMapping("/queryUserById")
        public JSONResult queryUserById(String userId) {
    
            return JSONResult.ok(userService.queryUserById(userId));
        }
    
        @RequestMapping("/queryUserList")
        public JSONResult queryUserList() {
    
            SysUser user = new SysUser();
            user.setUsername("imooc");
            user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserList(user);
    
            return JSONResult.ok(userList);
        }
    
        @RequestMapping("/queryUserListPaged")
        public JSONResult queryUserListPaged(Integer page) {
    
            if (page == null) {
                page = 1;
            }
    
            int pageSize = 10;
    
            SysUser user = new SysUser();
    //        user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    
            return JSONResult.ok(userList);
        }
    
       /* @RequestMapping("/queryUserByIdCustom")
        public JSONResult queryUserByIdCustom(String userId) {
    
            return JSONResult.ok(userService.queryUserByIdCustom(userId));
        }*/
    
        @RequestMapping("/saveUserTransactional")
        public JSONResult saveUserTransactional() {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("lee" + new Date());
            user.setNickname("lee" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUserTransactional(user);
    
            return JSONResult.ok("保存成功");
        }
    }

    Service接口:(同上)

    Service实现类:

    package com.example.demo.service.impl;
    
    /**
     * UserServiceImpl
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    import java.util.List;
    
    import com.example.demo.mapper.SysUserMapper;
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    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 org.thymeleaf.util.StringUtils;
    
    import com.github.pagehelper.PageHelper;
    
    import tk.mybatis.mapper.entity.Example;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private SysUserMapper userMapper;
    
        /*@Autowired
        private SysUserMapperCustom userMapperCustom;*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUser(SysUser user) throws Exception {
    
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //mybaties jar包中的方法
            userMapper.insert(user);
        }
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void updateUser(SysUser user) {
         userMapper.updateByPrimaryKeySelective(user); // userMapper.updateByPrimaryKey(user); } @Override @Transactional(propagation = Propagation.REQUIRED) public void deleteUser(String userId) { userMapper.deleteByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserById(String userId) { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return userMapper.selectByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserList(SysUser user) { try { Thread.sleep(11000); } catch (InterruptedException e) { e.printStackTrace(); } Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) { // criteria.andEqualTo("username", user.getUsername()); criteria.andLike("username", "%" + user.getUsername() + "%"); } if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } List<SysUser> userList = userMapper.selectByExample(example); return userList; } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) { // 开始分页 PageHelper.startPage(page, pageSize); Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } example.orderBy("registTime").desc(); List<SysUser> userList = userMapper.selectByExample(example); return userList; } /*@Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserByIdCustom(String userId) { List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId); if (userList != null && !userList.isEmpty()) { return (SysUser)userList.get(0); } return null; }*/ @Override @Transactional(propagation = Propagation.REQUIRED) public void saveUserTransactional(SysUser user) { userMapper.insert(user); int a = 1 / 0; user.setIsDelete(1); userMapper.updateByPrimaryKeySelective(user); } }

    生成的mapper类:(同上)

    生成的pojo类:(同上)

    生成的相关mapper.xml(同上)

    测试:

    2.5  select  demo(分页查询):

    启动类:(同上)

    Controller类:

    package com.example.demo.controller;
    
    /**
     * MyBatisCRUDController
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    import com.example.demo.tools.JSONResult;
    import org.n3r.idworker.Sid;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    import java.util.List;
    
    @RestController
    @RequestMapping("mybatis")
    public class MyBatisCRUDController {
    
        @Autowired
        private UserService userService;
    
        @Autowired
        private Sid sid;
    
       @RequestMapping("/saveUser")
        public JSONResult saveUser() throws Exception {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("imooc" + new Date());
            user.setNickname("imooc" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/updateUser")
        public JSONResult updateUser() {
    
            SysUser user = new SysUser();
            user.setId("10011001");
            user.setUsername("10011001-updated" + new Date());
            user.setNickname("10011001-updated" + new Date());
            user.setPassword("10011001-updated");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.updateUser(user);
    
            return JSONResult.ok("保存成功");
        }
    
        @RequestMapping("/deleteUser")
        public JSONResult deleteUser(String userId) {
    
            userService.deleteUser(userId);
    
            return JSONResult.ok("删除成功");
        }
    
        @RequestMapping("/queryUserById")
        public JSONResult queryUserById(String userId) {
    
            return JSONResult.ok(userService.queryUserById(userId));
        }
    
        @RequestMapping("/queryUserList")
        public JSONResult queryUserList() {
    
            SysUser user = new SysUser();
            user.setUsername("imooc");
            user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserList(user);
    
            return JSONResult.ok(userList);
        }
    
        @RequestMapping("/queryUserListPaged")
        public JSONResult queryUserListPaged(Integer page) {
    
            if (page == null) {
                page = 1;
            }
    
            int pageSize = 10;
    
            SysUser user = new SysUser();
    //        user.setNickname("lee");
    
            List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    
            return JSONResult.ok(userList);
        }
    
       /* @RequestMapping("/queryUserByIdCustom")
        public JSONResult queryUserByIdCustom(String userId) {
    
            return JSONResult.ok(userService.queryUserByIdCustom(userId));
        }*/
    
        @RequestMapping("/saveUserTransactional")
        public JSONResult saveUserTransactional() {
    
            String userId = sid.nextShort();
    
            SysUser user = new SysUser();
            user.setId(userId);
            user.setUsername("lee" + new Date());
            user.setNickname("lee" + new Date());
            user.setPassword("abc123");
            user.setIsDelete(0);
            user.setRegistTime(new Date());
    
            userService.saveUserTransactional(user);
    
            return JSONResult.ok("保存成功");
        }
    }

    Service接口:(同上)

    Service实现类:

    package com.example.demo.service.impl;
    
    /**
     * UserServiceImpl
     *
     * @author 魏豆豆
     * @date 2020/12/20
     */
    import java.util.List;
    
    import com.example.demo.mapper.SysUserMapper;
    import com.example.demo.pojo.SysUser;
    import com.example.demo.service.UserService;
    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 org.thymeleaf.util.StringUtils;
    
    import com.github.pagehelper.PageHelper;
    
    import tk.mybatis.mapper.entity.Example;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private SysUserMapper userMapper;
    
        /*@Autowired
        private SysUserMapperCustom userMapperCustom;*/
    
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void saveUser(SysUser user) throws Exception {
    
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //mybaties jar包中的方法
            userMapper.insert(user);
        }
        @Override
        @Transactional(propagation = Propagation.REQUIRED)
        public void updateUser(SysUser user) {
         userMapper.updateByPrimaryKeySelective(user); // userMapper.updateByPrimaryKey(user); } @Override @Transactional(propagation = Propagation.REQUIRED) public void deleteUser(String userId) { userMapper.deleteByPrimaryKey(userId); }
    @Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserById(String userId) { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return userMapper.selectByPrimaryKey(userId); } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserList(SysUser user) { try { Thread.sleep(11000); } catch (InterruptedException e) { e.printStackTrace(); } Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) { // criteria.andEqualTo("username", user.getUsername()); criteria.andLike("username", "%" + user.getUsername() + "%"); } if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } List<SysUser> userList = userMapper.selectByExample(example); return userList; } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) { // 开始分页 PageHelper.startPage(page, pageSize); Example example = new Example(SysUser.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) { criteria.andLike("nickname", "%" + user.getNickname() + "%"); } example.orderBy("registTime").desc(); List<SysUser> userList = userMapper.selectByExample(example); return userList; } /*@Override @Transactional(propagation = Propagation.SUPPORTS) public SysUser queryUserByIdCustom(String userId) { List<SysUser> userList = userMapperCustom.queryUserSimplyInfoById(userId); if (userList != null && !userList.isEmpty()) { return (SysUser)userList.get(0); } return null; }*/ @Override @Transactional(propagation = Propagation.REQUIRED) public void saveUserTransactional(SysUser user) { userMapper.insert(user); int a = 1 / 0; user.setIsDelete(1); userMapper.updateByPrimaryKeySelective(user); } }

    生成的mapper类:(同上)

    生成的pojo类:(同上)

    生成的相关mapper.xml(同上)

    测试:

     

  • 相关阅读:
    [考试反思]0421省选模拟76:学傻
    [考试反思]0420省选模拟75:安在
    [考试反思]0418省选模拟74:杂枝
    [考试反思]0417省选模拟73:纠结
    [考试反思]0416省选模拟72:停滞
    [考试反思]0415省选模拟71:限制
    [考试反思]0414省选模拟70:阻塞
    [考试反思]0413省选模拟69:遗弃
    [考试反思]0411省选模拟68:毒瘤
    [考试反思]0410省选模拟67:迷惑
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14165528.html
Copyright © 2011-2022 走看看