MyBatisGX 示例工程:CRUD + 关联查询完整演示

MyBatisGX 示例工程:CRUD + 关联查询完整演示

第一步:引入依赖

xml 复制代码
<dependency>
    <groupId>com.mybatisgx</groupId>
    <artifactId>mybatisgx-spring-boot3-starter</artifactId>
    <version>0.0.4</version>
</dependency>

第二步:service代码

  • 定义查询实体
java 复制代码
@Data
@QueryEntity(User.class)
public class UserQuery extends User {

    private String nameLike;
}
  • 编写service代码
java 复制代码
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;
    @Autowired
    private RoleDao roleDao;

    @Transactional(rollbackFor = Exception.class)
    @Override
    public int add(User user) {
        this.userDao.insert(user);

        List<Role> roleList = user.getRoleList();
        this.roleDao.insertBatch(roleList);

        return 1;
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public int delete(Long id) {
        return this.userDao.deleteById(id);
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public int modify(User user) {
        return this.userDao.updateById(user);
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public User findById(Long id) {
        return this.userDao.findById(id);
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public List<User> list(UserQuery userQuery) {
        return this.userDao.findList(userQuery);
    }
}

第三步:直接调用

  • 请求:
shell 复制代码
curl -X GET "http://localhost:8080/mybatisgx-example/user/list" --data-urlencode "nameLike=管理"
  • 结果:
json 复制代码
[
  {
    "id": 1, "name": "张三",
    "roleList": [
      {
        "id": 1, "code": "ADMIN", "name": "管理员", "userList": null,
        "menuList": [
          {"id": 1, "code": "USER_MANAGE", "name": "用户管理", "roleList": null},
          {"id": 2, "code": "ROLE_MANAGE", "name": "角色管理", "roleList": null},
        ]
      }
    ]
  },
  {"id": 2, "name": "李四",
    "roleList": [
      {
        "id": 2, "code": "USER", "name": "普通用户",
        "userList": null,
        "menuList": [
          {"id": 1, "code": "USER_MANAGE", "name": "用户管理", "roleList": null}
        ]
      }
    ]
  },
  {
    "id": 3,
    "name": "王五",
    "roleList": [
      {
        "id": 3, "code": "GUEST", "name": "访客",
        "userList": null,
        "menuList": [
          {"id": 1, "code": "USER_MANAGE", "name": "用户管理", "roleList": null}
        ]
      }
    ]
  }
]
相关推荐
君顾16 分钟前
折扣卡 CPS 小程序定制:从业务流程到系统架构的实践指南
java·开发语言·折扣卡
见不散8 分钟前
GPT-5.6 Luna (Batch) 批量处理能力深度评测
java·gpt·batch
江湖十年18 分钟前
Go 还是 Golang?可能你一直都搞错了!
后端·面试·go
计算机毕设定制辅导-无忧学长26 分钟前
《基于SpringBoot的庭院玫瑰栽培养护知识交互式科普平台设计与实现》
java·spring boot·后端·毕业设计·个性化推荐·协同过滤算法·庭院玫瑰栽培养护知识科普平台
骇客野人27 分钟前
SpringBoot数十Jar包批量生产部署落地实施方案(Shell+Systemd完整版)
spring boot·后端·jar
Json____1 小时前
从零构建家政服务平台:一套全栈架构如何打通管理端与移动端-java-springboot
java·spring boot·后端·架构·毕设·wwwoop.com
leeyi1 小时前
命令行里的平台:df_cli 都会什么(第108篇)
后端·aigc·agent
云雀衔光2 小时前
Java Spring AI MCP:在 Spring 里把 AI 接上你的业务系统
java·开发语言·人工智能·后端·测试工具·spring
重生之小比特2 小时前
【Java SE】数据类型与变量
java·开发语言·python
苏渡苇2 小时前
Spring Insight 里如何对 Span 进行清洗
java·spring boot·后端·spring·系统监控