- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个显示图表的应用程序,图表中填充了来自 SQL 表的数据。我一直在寻找让用户“编辑”表格的可能性,以便他可以更改图表。今天我找到了 Vaadin“SQLContainer”插件,这正是我所需要的。我能够连接到数据库并获取我需要的表并将其连接到 Vaadin 表,这样我就可以在 Vaadin 中看到一个数据库表。我已经多次阅读 SQLContainer 的 Vaadin 教程(更新的 AdressBook 教程),但我仍然不明白如何通过 SQLContainer 向数据库提交内容。这是我到目前为止所得到的:
public void displayTable(){
try {
connectionPool = new SimpleJDBCConnectionPool(
"org.postgresql.Driver",
"jdbc:postgresql://localhost:5432/database", "username", "password", 2, 5);
FreeformQuery query = new FreeformQuery("select * FROM table", connectionPool);
container = new SQLContainer(query);
container.addListener(new QueryDelegate.RowIdChangeListener() {
public void rowIdChange(RowIdChangeEvent event) {
System.err.println("Old ID: " + event.getOldRowId());
System.err.println("New ID: " + event.getNewRowId());
}
});
} catch (SQLException e) {
e.printStackTrace();
}
table= new Table("Table",container);
table.setSelectable(true);
table.addListener(this);
window.addComponent(table);
}
}
我正在使用 Vaadin 版本 6.6.6 并使用 PostgrSQL。
最佳答案
我看到您的查询只是“select * FROM table”。如果是这种情况,您应该使用 TableQuery 而不是 FreeformQuery。 TableQuery 已经为您直接从单个 SQL 表填充容器的情况实现了所有读/写、排序、过滤等。
使用 TableQuery,您应该能够将 vaadin 表设置为可编辑模式 (setEditable),并且能够直接操作数据库中的值,通过调用 container.commit() 存储它们,除非它处于 writeThrough 和 autoCommit 模式。或者您可以获取表格的一行(一个项目)并在 Vaadin 表单中对其进行编辑。
如果您需要使用 FreeformQuery(用于更复杂的查询,例如 JOINing 两个或多个表),您需要自己实现写支持,如另一个答案中所述。有关此的简单示例,请查看 the implementation of the DemoFreeformQueryDelegate用于 SQLContainer 演示应用程序。
HTH
关于java - 瓦丁 : commit new Items to Database (SQLContainer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927405/
我正在使用 Vaadin 7。在我的简单场景中,我想将 Table 组件与 SQLContainer 一起使用。 问题是,由于 SQLContainer 没有实现 addContainerProper
TableQuery tq1 = new TableQuery("employee", connectionPool); tq1.setVersionColumn("VERSION");
我在使用 Vaadin 的 SQLContainer 时遇到一些问题。我的 SQLContainer 的名称是 agentContainer。 现在如果我运行以下代码: System.out.prin
我在 Vaadin 中的 SQLContainer 遇到问题。 commit() 将把所有更改提交到数据库。我只想向数据库提交一行。 情况是我有一个 TableQuery 和一个表,用户可以在其中添加
我是 vaadin(和 java)的新手。 我有一个像这样的 SQLcontainer 表: public class ProjectTable extends Table { publi
我在 Vaadin 中创建了简单的 FilterTable: private static final String COL1_PROP = "date"; private stati
Vaadin 7 提供 SQLContainer执行。 Book of Vaadin说要使用它的 JDBC 连接池的任何一个实现。但我已经在使用 Tomcat JDBC Connection Pool
我正在构建一个简单的 CRUD 应用程序,以 MySql 数据库作为后端。到目前为止,我设法使用 FreeformQuery 将网格链接到 SQLContainer 的内容(因此读取没问题)。
我有一个显示图表的应用程序,图表中填充了来自 SQL 表的数据。我一直在寻找让用户“编辑”表格的可能性,以便他可以更改图表。今天我找到了 Vaadin“SQLContainer”插件,这正是我所需要的
我需要有关基于 Vaadin 的简单应用程序的帮助。 我需要一个与 SQL 查询结果绑定(bind)的表。 SQL 查询有一个参数,用户可以从组合框中选择该参数的值。我需要的是当用户更改组合框值时刷新
有人可以告诉我我做错了什么吗?我只想从 SQLContainer 中选择一个项目,该项目使用 Vaadin 显示为网格对象。我基本上想用所选项目的内容填写表单,以便我可以在保存项目之前对其进行编辑(标
编辑:这是一个演示问题的普通 Grails 项目:https://github.com/jbwiv/vaadin_connection_problem_demo . H2 和 PostgreSQL 驱
我是一名优秀的程序员,十分优秀!