解决报错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 {/*** 添加分页插件*/@Beanpublic 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 {@Autowiredprivate UserService userService;/*** 获取所有用户列表* GET /api/users*/@GetMappingpublic 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*/@PostMappingpublic 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> {// 可以在这里添加自定义的业务方法
}