前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java代码生成器:1分钟提供增删改查api,由世界上最好的语言pyhton编写

Java代码生成器:1分钟提供增删改查api,由世界上最好的语言pyhton编写

原创
作者头像
热心的程序员
发布2018-09-10 17:10:05
1.3K0
发布2018-09-10 17:10:05
举报
文章被收录于专栏:编程之路编程之路

用世界上最好的语言python编写的Java代码生成器,私人订制,模版任意设置,使用此代码生成器1分钟可以迅速完成增删改查全部功能,并提供api接口。

本项目为Spring + Mybatis + mysql + dubbo代码生成器,但只要增加模版便可以完成你的私人订制代码生成器,不限语言。

本项目已包含以下模版:实体类模版,service服务类接口模版,service服务类实现模版,mapper数据库接口模版,mapper xml配置文件模版,dubbo provider和customer模版,Controller模版。

下面以mapper类为例介绍下代码生成的思路:

  1. 创建mapper类需要的关键字,类名、包名、创建人、创建时间等
代码语言:txt
复制
# 创建Mapper
def create_mapper(createName,class_name, package, date):
    c = {'package': package + '.Mapper',
         'class_name': class_name,
         'createName': createName,
         'small_class_name': small_str(class_name),
         'entity_package': package + '.entity.' + class_name,
         'date': date}
    s = render_template('mapper_templates.html', **c)
    create_java_file(class_name + 'Mapper', package + '.mapper', s)

2.创建mapper接口文件模版

代码语言:txt
复制
package {{ package }};
import {{ entity_package }};
import java.util.List;
/**
 * 基本功能:{{ class_name }}数据库接口
 * 创建人:{{ createName }}
 * 创建时间:  {{ date }}
 **/
public interface {{ class_name }}Mapper {
    List<{{ class_name }}> getAll{{ class_name }}({{ class_name }} {{ small_class_name }});
    List<{{ class_name }}> get{{ class_name }}ByParams({{ class_name }} {{ small_class_name }});
    int save{{ class_name }}({{ class_name }} {{ small_class_name }});
    int delete{{ class_name }}({{ class_name }} {{ small_class_name }});
    int update{{ class_name }}({{ class_name }} {{ small_class_name }});
}

3.html中填写关键词

代码语言:txt
复制
{
    "table": "studentLeave",
    "class": "StudentLeave",
    "type": "mysql",
    "package": "cn.studyou",
    "createName": "王杰",
    "column": {
        "id": "int",
        "studentId": "int",
        "examineNumber": "String",
        "createId": "int",
        "reason": "String",
        "createDate": "String",
        "startDate": "String",
        "endDate":"String",
        "status":"int"
    }
}
                </textarea>

4.接收html参数创建文件

代码语言:txt
复制
    fields = request.form['fields']
    if len(fields) <= 0:
        msg = 'request data json is null!'
    print(fields)
    j = json.loads(fields, encoding='utf-8')
    class_name = j['class']
    package = j['package']
    db_type = j['type']
    createName = j['createName']
    d = time.strftime("%Y-%m-%d", time.localtime())
    create_mapper(createName,class_name, package, d)

5.创建文件保存到本地

代码语言:txt
复制
# 创建java文件
    def create_java_file(class_name, package, text, suffix='.java'):
    dirs = '/Users/wangjie/javaTemplate/' + package.replace('.', '/') + '/'
    if not os.path.exists(dirs):
        os.makedirs(dirs, 0o777)
    del_file(dirs)
    fd = os.open(dirs + class_name + suffix, os.O_WRONLY | os.O_CREAT)
    os.write(fd, text.encode(encoding="utf-8", errors="strict"))
    os.close(fd)

前台操作页面

WX20180910-094658@2x.png
WX20180910-094658@2x.png

最终生成的文件

WX20180910-101022@2x.png
WX20180910-101022@2x.png

到此就完成了一个模版的创建,以此类推完成更多的模版。

在线代码生成地址:http://www.shengyiguanjia.xyz/index

使用方法:

  1. 在页面实体类中填写table、class等信息,然后点击提交,代码生成后点击下方下载文件地址即可下载到本地,本地打开zip压缩包即可看到所有生成的代码。

2.将生成的代码拷贝到项目中,修改mapper.xml中的resultMap 和 sql语句即可。

如果您感兴趣,请扫码下面二维码获取项目源码或交流学习。

扫码二维码关注我
扫码二维码关注我

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档