`
lan13217
  • 浏览: 497973 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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)));
分享到:
评论

相关推荐

    JS控制明细列显示隐藏 同时控制字段必填属性.js

    JS控制明细列显示隐藏 同时控制字段必填属性.js

    jQuery设置表格列字段筛选改变代码

    本文将深入探讨如何使用jQuery来实现表格列字段的筛选功能,并且会在改变筛选条件时实时更新表格内容。 首先,让我们理解HTML结构。在`index.html`文件中,通常会有一个表格(`&lt;table&gt;`)元素,包含表头(`&lt;thead&gt;`...

    js实现点击table表头字段,根据字段排序例子

    在JavaScript中实现点击表格(Table)表头进行字段排序是一种常见的功能需求,特别是在网页数据展示时,用户往往希望可以通过点击列头对数据进行升序或降序排列。本示例将详细讲解如何通过JavaScript实现这一功能。 ...

    js 实现 用JavaScript隐藏或显示表格列

    js 实现 用JavaScript隐藏或显示表格列! 值得下载看看!资源免费,大家分享!!

    js实现点击table表头字段带箭头标示

    在前端开发中,JavaScript(JS)是一种至关重要的脚本语言,尤其在构建交互式用户界面时。本话题聚焦于“js实现点击table表头字段带箭头标示”,这是一个常见需求,特别是在数据展示和管理中。它使得用户可以通过...

    js 显示/隐藏某些列

    在JavaScript中,显示或隐藏网页中的某些列是一个常见的需求,特别是在构建动态用户界面时。这个需求通常涉及到HTML表格(`&lt;table&gt;`元素)或者通过CSS布局实现的列状结构。以下是一些关于如何使用JavaScript来操作...

    SharePoint2013Url显示图片的自定义字段

    另外,SharePoint 2013也提供了其他方法来实现这一目标,比如使用JavaScript或者jQuery在页面加载后动态修改DOM,将URL字段转换为图片。这种方法更灵活,但可能需要更多的前端开发知识。 总的来说,"SharePoint2013...

    主表控制明细列隐藏显示.js

    主表控制明细列隐藏显示

    【js模板】根据主表字段显示或隐藏明细表指定列.txt

    【js模板】根据主表字段显示或隐藏明细表指定列

    SpringMVC实现动态加表及字段并显示数据

    JavaScript,如jQuery或Vue.js,可以实现动态交互,如表单验证、异步提交等。在前端展示数据时,可以通过Ajax技术向服务器发送请求,获取最新数据并更新到页面上。 文件"SoftwareConfig"可能是指配置文件,比如...

    一个用于将JSON数据转换为Table的JavaScript库

    为此,库提供了列映射功能,允许你指定JSON字段与表格列的对应关系,以及自定义转换函数。 5. **事件处理**:为了增加交互性,你可以监听表格上的事件,例如点击行、单元格等。json-table-converter库可能提供了...

    asp javascript adox,读取数据库表,列,字段信息

    asp(javascript)服务器端(adox应该本地也可用,没测试),读取数据库表,列,字段信息(字段名称,长度,类型,描述,是否允许空值,是否自增量) 扩展一下可以做数据源允许的更多事情。

    LigerGrid动态改变加载字段列名

    根据提供的文件信息,本文将详细解释如何在LigerGrid中实现动态改变加载字段列名的功能。这涉及到对LigerGrid的基础使用、参数设置以及通过JavaScript编程实现动态更改的方法。 ### LigerGrid概述 LigerGrid是一款...

    自己用JavaScript写的根据数据库名和字段自动生成java后台代码(二)

    1. **Java实体类**:这些类通常代表数据库中的表,每个字段对应表的一列。实体类包含了属性(对应字段)、getter和setter方法,以及可能的构造函数。通过JavaScript生成这些类,可以大大减少手动编写的工作量,确保...

    js某一列值的合计统计

    js某一列值的合计统计,这是对前端某一字段的值进行统计,不是从后台数据库中调取数据。对于某一列值有进行过运算处理过的统计,就很值得一用了。

    jQuery插件jqGrid动态获取列和列字段的方法

    在本文中,我们将探讨如何在jqGrid中动态获取列和列字段,这对于创建自定义功能或者根据用户需求动态展示数据非常有用。 首先,问题背景是关于jqGrid表格插件的使用,我们需要获取表格的表头(即列名)和表格字段,...

    Dev-GridLookUpEdit 的用法 动态配置列为查询关键字段

    本篇文章将详细介绍如何利用`GridLookUpEdit`进行动态配置列,并将其设置为查询的关键字段,以提升用户体验并实现灵活的数据操作。 `GridLookUpEdit`是DevExtreme库中的一个组件,它结合了`GridView`和`Lookup`的...

    highcharts饼图字段超出解决

    4. **使用数据列格式化函数**:通过定义`dataLabels.formatter`回调函数,可以根据实际情况动态地调整标签内容。这可以用来截断、省略或转换字段名称。例如: ```javascript plotOptions: { pie: { dataLabels: ...

    数据库字段导出网页.rar

    在数据库中,每个表格(表)都由一系列字段(列)组成,每个字段都有其特定的数据类型,如整数、字符串、日期等。 导出数据库字段到网页的过程中,首先需要进行的是数据结构的获取。这通常通过SQL查询实现,例如...

    vs截取字段

    在数据库术语中,字段是表中的一个列,它存储某一类信息,比如姓名、年龄或地址。在编程中,字段可能指的是字符串的一部分,例如一个URL中的子串。截取字段就是从这些数据源中提取出我们感兴趣的特定部分。 在不同...

Global site tag (gtag.js) - Google Analytics