js字段转列


function fieldToColumn(str) {
if (!!str && typeof(str) === "string") {
return str.replace(/[a-z]+[A-Za-z0-9]+/g, function (match) {
return match.replace(/[A-Z]|\d+/g, function (match) {
return "_" + match.toLowerCase();
})
})
}
return str;
}
function getClassName(str) {
return str.match(/class\s+[a-zA-z0-9]+/g)[0].match(/([a-zA-Z0-9]+)$/)[0];
}
function getFields(str) {
return str.match(/(?:private\s+[a-zA-Z0-9]+\s+)([a-zA-Z0-9]+)(?=\s*;)/g).map(function (mc) {
return mc.match(/([a-zA-Z0-9]+)$/)[0]
});
}
function genMapping(className,fields){

var xml='<class name="'+className+'" table="TSS_COURIER">\n'+
' <id name="id" type="java.lang.Long">\n'+
' <column name="ID" precision="22" not-null="true"/>\n'+
' <generator class="sequence">\n'+
' <param name="sequence">SEQ_TSS_COURIER</param>\n'+
' </generator>\n'+
' </id>\n';
for(var i=0;i<fields.length;i++){
xml+=
' <property name="'+fields[i]+'" type="java.lang.String">\n'+
' <column name="'+fieldToColumn(fields[i])+'"/>\n'+
' </property>\n';
}

xml+='</class>\n';
return xml;
}

var str = 'package org.smart4j.sample.entity;\n'+
'import org.smart4j.framework.orm.annotation.Entity;\n'+
'public class Product {\n'+
' private long id;\n'+
' private long productTypeId;\n'+
' private String name;\n'+
' private String code;\n'+
' private int price;\n'+
' private String description;\n'+
' private String picture;\n'+
' public long getId() {\n'+
' return id;\n'+
' }\n'+
' public void setId(long id) {\n'+
' this.id = id;\n'+
' }\n'+
' public long getProductTypeId() {\n'+
' return productTypeId;\n'+
' }\n'+
' public void setProductTypeId(long productTypeId) {\n'+
' this.productTypeId = productTypeId;\n'+
' }\n'+
' public String getName() {\n'+
' return name;\n'+
' }\n'+
' public void setName(String name) {\n'+
' this.name = name;\n'+
' }\n'+
' public String getCode() {\n'+
' return code;\n'+
' }\n'+
' public void setCode(String code) {\n'+
' this.code = code;\n'+
' }\n'+
' public int getPrice() {\n'+
' return price;\n'+
' }\n'+
' public void setPrice(int price) {\n'+
' this.price = price;\n'+
' }\n'+
' public String getDescription() {\n'+
' return description;\n'+
' }\n'+
' public void setDescription(String description) {\n'+
' this.description = description;\n'+
' }\n'+
' public String getPicture() {\n'+
' return picture;\n'+
' }\n'+
' public void setPicture(String picture) {\n'+
' this.picture = picture;\n'+
' }\n'+
'}\n';
console.log(getClassName(str));
console.log(getFields(str));
console.log(getFields(str).map(function(mc){return fieldToColumn(mc)}));
console.log(genMapping(getClassName(str),getFields(str)));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值