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)));
js字段转列
猜你喜欢
转载自snowelf.iteye.com/blog/2297578
今日推荐
周排行