欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-19 20:43:52
...

用世界上最好的语言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)

前台操作页面

 

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

最终生成的文件

 

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

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

使用方法:

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

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

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

 

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

 

相关标签: 代码生成 python