IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

SpringBoot最新教程(十六)、mybatis-plus 的使用

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

0-前言

  mybatis plus是对mybatis的增强,集成mybatis plus后,简单的CRUD和分页就不用写了,非常方便,五星推荐;

1-集成

1-1、添加依赖

        <!-- 9、集成mybatis-plus  -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

1-2、配置文件增加配置

#mybatis-plus
mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
mybatis-plus.type-aliases-package=com.anson.model
mybatis-plus.configuration.map-underscore-to-camel-case=true

1-3、配置类中增加分页bean

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

1-4、model(工具生成即可)

package com.anson.model;
import java.io.Serializable;

public class User implements  Serializable
{
    //----------------------------
    private Integer id;
    private String username;
    private String password;
    private String realname;
    //---------------------------

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname == null ? null : realname.trim();
    }
}

1-5、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.anson.dao.UserMapper">
  <resultMap id="BaseResultMap" type="com.anson.model.User">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="userName" jdbcType="VARCHAR" property="username" />
    <result column="passWord" jdbcType="VARCHAR" property="password" />
    <result column="realName" jdbcType="VARCHAR" property="realname" />
  </resultMap>
  <sql id="Base_Column_List">
    id, userName, passWord, realName
  </sql>

</mapper>

1-6、dao(mapper类),继承 BaseMapper

package com.anson.dao;

import com.anson.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import javafx.scene.control.Pagination;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;

@Repository
public interface UserMapper extends BaseMapper<User>
{
}

1-7、service 继承 ServiceImpl

package com.anson.service;

import com.anson.dao.UserMapper;
import com.anson.model.User;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User>
{
    @Autowired
    UserMapper usermapper;
}

1-8、controller

  看见没,以上基本没有一行代码,但是在controller我们已经可以直接使用增删查改和分页了

//-----------mybatis plus--------------------
    //1、增

        User user= new User();
        user.setId(6);
        user.setUsername("anson");
        user.setPassword("1236216");
        user.setRealname("王琪琪");
        userservice.save(user);

    }
    //2、删

        userservice.removeById(id);
//3、查

        User b =userservice.getById(id);
//4、改

        User update = new User();
        update.setId(6);
        update.setUsername("alex2266");
        userservice.updateById(update);
}
    //5、分页

        IPage<User> page=new Page(1,3);
        page = userservice.page(page);

怎么样,是不是很爽,项目中,只有少部分特殊的操作需要单独写SQL和方法,大部分CRUD都不需要写了

2、注意的地方

  mybatis中,对于下划线“_”,默认是转换成大写字母处理的,比如我们数据库表字段“update_time”,mybatis会转换成“updateTime”;

所以,为了避坑,直接给出强制建议(或者说结论):

  1、数据库表设计,不要采用大小写,一律小写,多个单词组合采用下划线连接,如字段“update_time”、“edit_by”

  2、model中,所有采用下划线的字段,转换成驼峰大小写,如:

    “update_time” 在实体类中为:“updateTime”,

    “edit_by” 在实体类中为: “editBy”

3、mybatis plus强大的条件构造器queryWrapper、updateWrapper

  muybatis plus 可以通过条件构造器增加各种查询和更新条件,有以下四种条件构造器(主要用后两种,Lambda则看个人喜好):

    LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
    LambdaUpdateWrapper : Lambda 更新封装Wrapper
    QueryWrapper : Entity 对象封装操作类,不是用lambda语法
    UpdateWrapper : Update 条件封装,用于Entity对象更新操作

先贴张常用条件构造器函数图(图片来源于网络):

108_1.png

例子:

        //1、根据条件删除
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper
                .isNull("username")
                .ge("id", 12)
                .isNotNull("realname");
        boolean delete = userservice.remove(queryWrapper);

        //2、根据条件查询
        QueryWrapper<User> queryWrapper2 = new QueryWrapper<>();
        queryWrapper2.eq("username", "eee");
        User user = userservice.getOne(queryWrapper2);

        //3、根据条件查询并分页
        Page<User> page2 = new Page<>(1, 5);
        QueryWrapper<User> queryWrapper3 = new QueryWrapper<>();
        queryWrapper3.like("username", "a");
        IPage<User> userIPage = userservice.page(page2, queryWrapper3);

        //4、根据条件更新

        User user2 = new User();
        user2.setRealname("zhangsan");

        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.eq("username", "eee");

        boolean update = userservice.update(user, userUpdateWrapper);

文章永久链接:https://tech.souyunku.com/?p=31839


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(61) 打赏



未经允许不得转载:搜云库技术团队 » SpringBoot最新教程(十六)、mybatis-plus 的使用

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367