【问题标题】:Java - Dynamically add input fields and add column to the tableJava - 动态添加输入字段并将列添加到表中
【发布时间】:2018-04-23 14:38:53
【问题描述】:

谁能指导我如何在表单中动态添加输入字段并在保存表单时,应将相同数量的列添加到相应的表中。 我们可以使用 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) {

        }
    });
}

【问题讨论】:

  • 是的,当然是休眠工作。你试过什么?给我们看看codez。
  • JavaScript 标签是否相关?
  • @evolutionxbox,我正在尝试使用 JavaScript 添加输入字段,所以我添加了标签。
  • @JackFlamp,如果我尝试使用 MVC 开发应用程序,会导致问题对吗?因为,模型元素不能动态改变?
  • 您遇到了什么问题?是在服务器上收不到请求还是保存到数据库有问题?

标签: javascript java hibernate jdbc


【解决方案1】:

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

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

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

   //getters setters
}

public class AttributeType {
    private String name;

    //getter setter
}

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多