在vaadin

时间:2016-04-25 10:09:54

标签: java mysql jdbc vaadin

对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轻松完成这一项。

2 个答案:

答案 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 overviewSQL container

一旦您可以访问SQL数据,就可以使用表格或网格来显示数据。 还有其他解决方案,如JPAContainer或BeanItemContainers,具体取决于您希望如何构建应用程序逻辑。