Java - 动态添加输入字段并向表中添加列

时间:2017-11-10 11:15:44

标签: javascript java hibernate jdbc

任何人都可以指导我如何在表单中动态添加输入字段,并且在保存表单时,相同数量的列应该添加到相应的表中。 我们可以通过使用Hibernate来实现,还是只能通过JDBC完成?

$(document).ready(function () {
    var counter = 1;
    var favorite = [];        

    $('#add').click(function () {
        var name = 'textName' + counter;
        $('#inputContainer').append("<div>" + name + "<input type='text' 
        id='" + name + "' /></div>");
        counter++;
    });

    $('#Save').click(function () {
        for (var i = 1; i < counter; i++) {
            var textValue = $('#textName' + i).val();
            favorite.push(textValue);
            //If you to save all data in one by one then Save function here
            //Save(textValue);
        }
        //If you to save all data in one go then call Save function here
        Save(favorite);
    });    });



function Save(dataToSave)
    {
    $.ajax({
        url: "AJAX_POST_URL",
        type: "POST",
        data: dataToSave,
        success: function (data, textStatus, jqXHR) {
            //data - response from server
        },
        error: function (jqXHR, textStatus, errorThrown) {

        }
    });
}

1 个答案:

答案 0 :(得分:0)

好的,现在我明白了。您想要动态地将新列添加到数据库表。你可以使用Hibernate。使用EntityManager,您可以运行ALTER TABLE语句。看这里https://stackoverflow.com/a/9914086/3959856

虽然,可能有更好的方法,比如使用可以调用属性的东西,例如,如果它适合你。 创建一个名为AttributeType的表(以及Hibernate中对应的实体)和一个名为Attribute的表作为示例。 添加新字段时,您将创建一个新的AttributeType(如果它是新类型,则重用和现有类型)。然后创建一个包含AttributeType和值的新Attribute。我认为这是一种更好的方式。

public class Attribute {
    private AttributeType type;
    private String value;

   //getters setters
}

public class AttributeType {
    private String name;

    //getter setter
}