对vaadin来说很新。我有一个任务,我应该显示从mysql数据库获取数据并在表中显示数据。之后所有的CRUD操作都将完成。
我使用纯JDBC,java,vaadin。我试过和jdbc连接相当轻松。但我坚持在浏览器中显示表中的数据。
以下代码是我试过的。
SimpleJDBCConnectionPool pool = new
SimpleJDBCConnectionPool("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost:3306/mg", "root", "root");
Notification.show("DB connected");
SQLContainer container = new SQLContainer(new FreeformQuery(
"SELECT * FROM PRODUCT", Arrays.asList("ID"), pool));
Notification.show("hi" +container);
Table table = new Table("Products", container);
现在我卡住了,如何在浏览器中显示Products表中的数据。请建议我,因为我希望很多GURU轻松完成这一项。
答案 0 :(得分:1)
试试这个简单的例子:
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.vaadin.ui.Table;
import com.vaadin.ui.Window;
public class MyApplication extends Application
{
Table table;
Window main = new Window("Sample");
Connection con;
PreparedStatement ps;
Statement cs;
ResultSet rs;
String dbUrl = "jdbc:mysql://localhost:3306/yourdatabasename";
public void init()
{
setMainWindow(main);
table = new Table();
table.setStyleName("iso3166");
table.setPageLength(6);
table.setSizeFull();
table.setSelectable(true);
table.setMultiSelect(false);
table.setImmediate(true);
table.setColumnReorderingAllowed(true);
table.setColumnCollapsingAllowed(true);
/*
* Define the names and data types of columns. The "default value" parameter is meaningless here.
*/
table.addContainerProperty("NAME", String.class, null);
table.addContainerProperty("CODE", Integer.class, null);
/* Add a few items in the table. */
try
{
con = DriverManager.getConnection(dbUrl, "root", "root");
cs = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = cs.executeQuery("select Name,Code from tablename");
while (rs.next())
{
table.addItem(new Object[] { rs.getString(1), rs.getInt(2) }, rs.getInt(2));
}
}
catch (Exception e)
{
// getWindow(null).showNotification("Error");
}
table.setWidth("300px");
table.setHeight("150px");
main.addComponent(table);
}
}
For Reference查看此链接: https://vaadin.com/forum#!/thread/272110
答案 1 :(得分:0)
您可以在以下两个链接中了解有关vaading中数据绑定的更多信息:
Datamodel overview和SQL container
一旦您可以访问SQL数据,就可以使用表格或网格来显示数据。 还有其他解决方案,如JPAContainer或BeanItemContainers,具体取决于您希望如何构建应用程序逻辑。