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}
        ]
      }
    ]
  }
]
相关推荐
程序员清风2 小时前
Java 智能体开发:从对话接口到任务执行
java·人工智能·python
迪丽热爱2 小时前
HTTP Error 500.30 - ASP.NET Core app failed to start
后端·asp.net
一 乐2 小时前
博客管理系统|基于springboot + vue博客管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕设
茉莉玫瑰花茶2 小时前
GO [ 函数 ]
开发语言·后端·golang
QuZhengRong2 小时前
【Spring】后端接收的请求参数多了一个逗号的处理办法
java·后端·spring
ZealSinger2 小时前
Go1.25容器感知GOMAXPROCS避限流
java·开发语言
打工仔折腾 AI2 小时前
从零写一个CAD 02:实体容器、Esc取消与键盘失灵的排查
人工智能·后端·python·性能优化
cxoptics2 小时前
LBO 会不会潮解?存储、镀膜、日常使用注意事项?
java
SL_staff2 小时前
非研发人员搭业务逻辑?先认清这3个可视化编程分水岭
java
王闯写bug2 小时前
tomcat老版本下载tomcat8.5下载
java·tomcat