程序员Android应用开发连载Python学习

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

2018-09-10  本文已影响20人  JeenWang

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

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

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

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

  1. 创建mapper类需要的关键字,类名、包名、创建人、创建时间等
# 创建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接口文件模版

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中填写关键词

  <textarea id="fields" name="fields" style="width: 99%; height: 400px;">
{
    "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参数创建文件

    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.创建文件保存到本地

# 创建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-101022@2x.png

到此就完成了一个模版的创建,以此类推完成更多的模版。
在线代码生成地址:http://www.shengyiguanjia.xyz/index

使用方法:

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

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

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


扫码二维码关注我
上一篇下一篇

猜你喜欢

热点阅读