实体类:
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