用python实现的mybatis反向生成器

用python实现了一个mybatis反向生成器,比较简单。

一种方法是用字符串直接拼接格式化的形式,比较low,贴段代码出来:

    def generate_java(self, data, end=False):
        column_type = eval('mt.MysqlType.{}.value[1]'.format(data[1]))
        self.result += '\tprivate {} {};\n\n'.format(column_type, self.deal_column_name(data[0]))
        if end:
            self.result += '}'

这是最早的方法,也是能想到最简单的,直接拼接字符串。后来在了解到一些模板引擎后,重写了一个用jinja2模板引擎做的生成器。查了一些资料发现模板引擎的原理是用正则匹配机制来做的,自定义一些标识符,用来作为语法使用。自己写类似的模板引擎也可以,但是略麻烦,就直接拿来用了。贴段代码:

 def generate_java(self):
        java_list = []
        for line in self.data:
            name = self.deal_column_name(line[0])
            types = self.deal_type(line[1])
            data = Data(name, line[0], types[1], types[0])
            java_list.append(data)
        content = self.env.get_template(self.java_tp).render(
            cls_name=self.deal_class_name(), java_list=java_list, lombok=self.lombok)
        self.save(self.java_path, content)

对应的模板为:

这里我都是用的最简单的语法,生成了java实体类,mapper和xml都能做的出来。只是模板对我来讲困难的地方在于一些地方格式(空行和空格)的控制略显吃力。好在多次调试后成为了我想要的样子。这里仅做参考,具体代码在我的github:https://github.com/xiqiuyimeng/mybatis-generator

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值