写了一个Java(mybatis plus)代码生成器,但是是GO实现的

大家好,这里是小奏 ,觉得文章不错可以关注公众号小奏技术

为什么要写这个库

市面上的mybatis plus 代码生成器有很多,但是都不太满足自己的要求。

在使用mybatis plus自己会有一个规范,就是不要将mybatis plusWarpper暴露到DAO以外的层级,特别是Service

不然造成的后果就是WarpperService满天飞。然后有如下弊端

  1. Service层充满了数据查询的各种Warpper,逻辑不够解耦,导致应该在数据层的逻辑全部暴露在Service

  2. Service层的数据查询没有封装无法复用

所以我们一般使用mybatis plus的标准用法结构是

  • infra
    • dao
      • mapper
        • OrderMapper.java
      • impl
        • OrderDAOImpl.java OrderDAO.java
    • entity
      • OrderDO.java

具体的代码如下:

  • OrderDO
java 复制代码
@Data
public class OrderDO {

}
  • OrderMapper
java 复制代码
@Mapper
public interface OrderMapper extends BaseMapper<OrderDO> {
}
  • OrderDAO
java 复制代码
public interface OrderDAO extends IService<OrderDO> {
}
  • OrderDAOImpl
java 复制代码
@Repository
@RequiredArgsConstructor
public class OrderDAOImpl extends ServiceImpl<OrderMapper, OrderDO> implements OrderDAO {

    private final InfluhubOrderMapper influhub_orderMapper;
}

在外部只使用OrderDAO,将Wrapper相关的逻辑都封装在DAO中,不蔓延到Services

使用

页面

使用方式有两种

脚本方式使用

直接在releases:github.com/weihubeats/...

目前支持平台如下

  • mac arm
  • mac x86

如果需要windows可以自己打一个包

下载完解压双击运行。然后在浏览器访问http://localhost:8080

如果遇到MAC应用无法打开或提示"来自身份不明开发者"

解决方法:

设置→安全与隐私 仍要打开

浏览器的页面长这样

由于不同数据库的SQL解析可能有不同,所以支持选择数据库

目前对PostgreSQL做了比较完整的测试,没太大问题。

MySQL还没测试过

然后直接点击生成代码

  • 效果

也可以直接以源码的方式使用

源码方式

直接运行main.go即可

然后访问http://localhost:8080

总结

自己整体使用效果感觉还可以,后续会持续更新。

又需要的小伙伴可以自己去下载,有功能或者建议也可以去github

会及时处理的哈哈

觉得不错可以帮忙点一个star 哈哈

相关推荐
SomeB1oody1 小时前
【RustyML入门】6.3. 并行归约
开发语言·后端·机器学习·rust·教程
Profile排查笔记2 小时前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户938515635073 小时前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
爱学习的小邓同学3 小时前
Golang --- (1)第一个Golang程序
开发语言·后端·golang
小灰灰搞电子4 小时前
Rust+Slint 实现的“DNA双螺旋”加载动画源码分享
后端·rust·slint·加载动画
面向Google编程4 小时前
向量库不再囤数据:Milvus 3.0 零拷贝直读数据湖
后端
IT_陈寒6 小时前
Redis内存警告竟是因为这个不起眼的配置项
前端·人工智能·后端
Python私教6 小时前
AI 漫剧角色一进分镜就变脸?把提示词升级成“角色 ID + 镜头合同”
后端
Python私教6 小时前
一次生成 20 个角色却全都撞脸:我用“角色合同”重做了批量生成流程
后端
用户594404103567 小时前
Go 语言高性能 Web 服务开发:基于 Gin + GORM + Redis 构建 RESTful API
后端