首页 > 其他分享 >spring boot集成mybatis-plus——增加一个用户

spring boot集成mybatis-plus——增加一个用户

时间:2023-02-04 13:57:01浏览次数:36  
标签:return spring boot 主键 user import mybatis org public

实体类:

package org.example.Entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("users")        //不一致时,需要映射
public class MyUser
{
    @TableId(type = IdType.AUTO)
    private int id;

    private String name;

    private int age;

    public int getId()
    {

        return id;
    }

    public void setId(int id)
    {

        this.id = id;
    }

    public String getName()
    {

        return name;
    }

    public void setName(String name)
    {

        this.name = name;
    }

    public int getAge()
    {

        return age;
    }

    public void setAge(int age)
    {

        this.age = age;
    }

    @Override
    public String toString()
    {

        return "MyUser{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

 

 

 

 

 

 

Mapper层不变

 

 

 

业务层接口与实现:

package org.example.service;

import org.example.Entity.MyUser;

import java.util.List;

public interface MyUserService
{

    // 查询所有用户
    List<MyUser> findAll();

    int save(MyUser myUser);



}

 

 

 

 

 

 

 

 

 

package org.example.service.Impl;

import org.example.Entity.MyUser;
import org.example.mapper.UserMapper;
import org.example.service.MyUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class MyUserServiceImpl implements MyUserService
{

    //继承了BaseMapper所有的方法,可以编写自己的扩展方法
    @Autowired
    private UserMapper userMapper;


    /**
     * 查询所有用户信息
     * @return
     */
    @Override
    public List<MyUser> findAll()
    {

        return userMapper.selectList(null);


    }

    /**
     * 增加一个用户信息
     * @param myUser
     * @return
     */
    @Override
    public int save(MyUser myUser) {
        return userMapper.insert(myUser);
    }


}

 

 

 

 

 

 

 

 

 

 

 

 

控制器类:

package org.example.controller;

import org.example.Entity.MyUser;
import org.example.service.MyUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
public class MyUserController
{

    @Autowired
    private MyUserService myUserService;


    @GetMapping(value = "/findAll")
    public List<MyUser> findAll()
    {
        // 查询所有用户信息
        List<MyUser> users = myUserService.findAll();

        for (MyUser user : users)
        {
            System.out.println(user.getId()+"  "+user.getName()+"  "+user.getAge());
        }

        return users;
    }


    @GetMapping(value = "/save")
    public int save()
    {
        MyUser user = new MyUser();
        user.setName("小文");
        user.setAge(21);

        int insert = myUserService.save(user);//如果没有设置id,那么会自动生成id

        System.out.println(insert);//受影响行数

        System.out.println(user);//id会自动回填

        return insert;
    }


}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意:

 

 

Mybatis-Plus的常用注解

 

 

 

@TableName----用于定义表名
常用属性:

value 用于定义表名

 

 

 

@TableId ----用于定义表的主键
常用属性:

value 用于定义主键字段名
type 用于定义主键类型(主键策略 IdType)

 

主键策略:

IdType.AUTO — 主键自增,系统分配,不需要手动输入
IdType.NONE — 未设置主键
IdType.INPUT — 需要自己输入 主键值。
IdType.ASSIGN_ID — 系统分配 ID,用于数值型数据
IdType.ASSIGN_UUID — 系统分配 UUID,用于字符串型数据

 

 

 

 

@TableField ----用于定义表的非主键字段。
常用属性:

value 用于定义非主键字段名
exist 用于指明是否为数据表的字段, true 表示是,false 为不是。
fill 用于指定字段填充策略(FieldFill)。
字段填充策略:(一般用于填充 创建时间、修改时间等字段)

FieldFill.DEFAULT — 默认不填充
FieldFill.INSERT — 插入时填充
FieldFill.UPDATE — 更新时填充
FieldFill.INSERT_UPDATE — 插入、更新时填充。

 

 

 

 

 

@TableLogic ----用于定义表的字段进行逻辑删除(非物理删除)
常用属性:

value 用于定义未删除时字段的值
delval 用于定义删除时字段的值

 

 

 

 

@Version 用于字段实现乐观锁

 

 

 

 

 

 

 

 

 

@TableField注解
1、 主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰)

2、 实体类中的属性字段在表中不存在的问题

// 用来解决数据库中的字段和实体类的字段不匹配问题
@TableField(value = "age")

// 用来解决实体类中有的属性但是数据表中没有的字段
@TableField(exist = false) // 默认为true

 

@TableName(value = …)
当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找)

@TableField 字段注解,该注解用于标识非主键的字段。将数据库列与 JavaBean 中的属性进行映射

 

标签:return,spring,boot,主键,user,import,mybatis,org,public
From: https://www.cnblogs.com/xiaobaibailongma/p/17091336.html

相关文章

  • spring boot集成mybatis-plus——新建工程与查询所有数据
    第一步引入依赖:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-......
  • Spring事务的传播机制
    1.什么是事务的传播机制事务的传播机制简单的说就是一个事务方法在调用另一个事务方法的时候,事务是如何在这些方法中进行传播的。比如说方法A调用了方法B,那么方法A有无事......
  • Spring基础知识一(概念和模块)
    一、Spring的概念和优点1.基本概念:Spring是一个轻量级、非侵入性的开源框架,通过基于POJO对象的编程模型,提供了以前的EJB才能提供的企业及服务。2.主要优点:(1).Spring通......
  • springcloud(一) - 核心组件
    Eureka各个微服务都会注册到Eureka,服务调用时候也会调用Eureka获取服务注册表,功能类似zk。 Feign动态代理的方式,简化请求其他服务的开发成本,更好得对请求地址组装、......
  • Spring 5(三)AOP
    三.AOP1.基本概念1.1什么是AOP(1)面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效......
  • MyBatis的使用六(解决字段名与成员名不一致)
    本文主要讲述mybatis如何解决mysql的字段名与java实体类的成员变量名称不一致。一.介绍实体类和数据表1.实体类EmployeepublicclassEmployee{privateIn......
  • Spring6 DI 依赖注入--Bean属性赋值
    Spring6基于XML实现Bean管理(属性赋值)IOC和DI有什么区别:DI是IOC中的具体实现,DI表示依赖注入或注入属性,注入属性要在创建对象的基础之上完成依赖注入方法bean属性赋值方......
  • Spring组成及其拓展
         ......
  • Spring Boot 集成 Redis 实现数据缓存
    SpringBoot集成Redis实现缓存主要分为以下三步:加入Redis依赖加入Redis配置演示Redis缓存加入依赖首先创建一个项目,在项目中加入Redis依赖,项目依赖如下......
  • 创建springboot项目
    有两种方式1.maven创建2.忘了今天采用maven创建       2.在pom.xml里面添加依赖3. 在resources下创建配置文件application.yam 4.Main就是启动......