暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Simba框架之代码生成器

Simba技术交流 2018-07-06
515

本文讲的主题,就是大家在开发过程中,最常见,最频繁,也是重复工作量最大的----CRUD。

现在我们就来讲解怎么使用Simba框架的代码生成器,解决大家重复劳动的问题。

Simba框架的代码生成器,支持3种类型的代码生成,普通的表格数据(Java代码和CRUD页面代码),树形数据(Java代码和左树右表页面代码),这两种都是带管理页面的,还有一种纯Java后台代码。

在开发一个模块之前,大家首先要做的事就是数据库建模,我们使用PowerDesigner进行数据库建模,如下图

blacklist是普通的列表结构,menu是树形结构。

普通列表对象,必须有一个id字段自增主键,如果是树型结构,必须有id ,parentID,text三个字段,数据库的表名为类名首字母小写,列名与类的属性名相同。

利用PowerDesigner创建表结构(自增id推荐使用bigint类型,对应java的long类型,如果使用int类型,需要在java代码生成之后,手动修改成int类型,因为PowerDesigner生成的java代码,自增id会默认为long类型)

点击菜单Database  --  Generate Database就可以直接选择路径,将建表脚本SQL文件生成好


点击菜单Tools   --   Generate Object Oriented Model生成对象模型

点击菜单Language --  Generate Java Code,选择需要存放model对象的项目路径(与文件powerdesigner_improve1.0.exe在同一个目录下<demoproject\simbaRoot\doc\框架文档\使用文档\PowerDesigner生成java代码及初始化建表脚本>)


双击powerdesigner_improve1.0.exe程序,输入包名并回车(若使用默认的com.simba则无需输入直接回车跳过即可)。同目录下会自动生成一个model文件夹,里面为生成好的javabean,可以直接使用,无需修改。

java代码拷贝到项目的对应model工程中。

@DescAnnotation 是为了页面显示使用的,代表字段的中文名称解释,默认是从数据库的comment字段读取。

打开代码生成器类,将刚刚新建的类,放到第一个红色框内,支持同时生成多个对象,第二个红色框代表的是页面类型,目前支持3种,无页面、列表页、树型页。


点击右键运行即可自动生成前后台代码,刷新整个项目,启动服务,即可看到效果。

如果需要生成带搜索功能的代码,需要调用重载的codeGenerate方法。

该方法第二个参数需要传入搜索Form类的Class类型的数组。SearchForm用来封装页面的搜索参数,参数可以使用注解@DBAnnotation来增强灵活性。

@DBAnnotation的用法

    需要传入三个参数

  • field搜索的字段对应数据库的字段名称

  • desc搜索字段的描述,用来在页面上显示用。

  • oper指定运算符


拿页面传入时间区间来举例

在Form类中定义startCreateTime和endCreateTime, 通过@DateTimeFormat定义时间的格式,使用@DBFieldAnnotation设置数据库字段为createTime,比较的逻辑是createTime>startCreateTime and createTime<=endCreateTime,在页面上显示的内容是desc中指定的内容。


目前只有TABLE类型的页面实现了自动添加搜索功能。

代码生成器的源码在simba-codegenerate目录中,有兴趣的同学可以自己看看,主要就是通过freemarker实现的。

所有有规则的代码都可以生成,只要你找到规则,就可以写出你自己的代码生成器。

文章转载自Simba技术交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论