mybatis-plus初体验,解决报错Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
解决报错Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
推荐这位大佬的博客:
https://www.cnblogs.com/muphy/p/18653627
项目结构

MyBatis-Plus配置类
MyBatisPlusConfig
package com.example.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* MyBatis-Plus配置类
* 配置分页插件等功能
*/
@Configuration
public class MyBatisPlusConfig {
/**
* 添加分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加MySQL的分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
用户Controller类
UserController
package com.example.controller;
import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
/**
* 用户Controller类
* 处理HTTP请求,实现CRUD操作的RESTful接口
*/
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
/**
* 获取所有用户列表
* GET /api/users
*/
@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
List<User> users = userService.list();
return ResponseEntity.ok(users);
}
/**
* 根据ID获取单个用户
* GET /api/users/{id}
*/
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userService.getById(id);
if (user == null) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.ok(user);
}
/**
* 创建新用户
* POST /api/users
*/
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
// 设置创建和更新时间
user.setCreateTime(LocalDateTime.now());
user.setUpdateTime(LocalDateTime.now());
boolean saved = userService.save(user);
if (saved) {
return ResponseEntity.ok(user);
}
return ResponseEntity.status(500).build();
}
/**
* 更新用户信息
* PUT /api/users/{id}
*/
@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
// 检查用户是否存在
if (userService.getById(id) == null) {
return ResponseEntity.notFound().build();
}
// 设置ID和更新时间
user.setId(id);
user.setUpdateTime(LocalDateTime.now());
boolean updated = userService.updateById(user);
if (updated) {
return ResponseEntity.ok(user);
}
return ResponseEntity.status(500).build();
}
/**
* 删除用户
* DELETE /api/users/{id}
*/
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
// 检查用户是否存在
if (userService.getById(id) == null) {
return ResponseEntity.notFound().build();
}
boolean deleted = userService.removeById(id);
if (deleted) {
return ResponseEntity.noContent().build();
}
return ResponseEntity.status(500).build();
}
}
用户实体类
User
package com.example.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 用户实体类
* 对应数据库中的user表
*/
@Data
@TableName("user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID,自增
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 昵称
*/
private String nickname;
/**
* 邮箱
*/
private String email;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
用户Mapper接口
UserMapper
package com.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.entity.User;
/**
* 用户Mapper接口
* 继承自MyBatis-Plus的BaseMapper,提供基础的CRUD操作
*/
public interface UserMapper extends BaseMapper<User> {
// 可以在这里添加自定义的SQL方法
}
用户Service实现类
UserServiceImpl
package com.example.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.entity.User;
import com.example.mapper.UserMapper;
import com.example.service.UserService;
import org.springframework.stereotype.Service;
/**
* 用户Service实现类
* 继承自MyBatis-Plus的ServiceImpl,实现了UserService接口
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
// 可以在这里实现自定义的业务方法
}
用户Service接口
UserService
package com.example.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.User;
/**
* 用户Service接口
* 继承自MyBatis-Plus的IService,提供更多的业务方法
*/
public interface UserService extends IService<User> {
// 可以在这里添加自定义的业务方法
}
浙公网安备 33010602011771号