2016-04-25 5 views
0

Bin sehr neu zu vaadin. Ich habe eine Aufgabe, in der ich die Daten zeigen sollte, die von mysql DB geholt werden und die Daten in einer Tabelle zeigen. Später werden alle CRUD-Operationen durchgeführt.Zeige Daten in der Tabelle von MySQL Tabelle in Vaadin

Ich verwende reines JDBC, Java, Vaadin. Ich habe versucht und jdbc Verbindung ist ziemlich einfach. Aber ich bin steckengeblieben darin, die Daten in der Tabelle im Browser zu zeigen.

der folgende Code ist, was ich ausprobiert habe.

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); 

Jetzt steckte ich, wie man die Daten von der Produkttabelle im Browser zeigt. bitte schlagen Sie mir vor, wie ich hoffe, dass viele von GURU diesen mit Leichtigkeit getan haben.

Antwort

1

dieses einfache Beispiel Versuchen:

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); 
    } 
} 

Für Referenz Sicht auf diesen Link: https://vaadin.com/forum#!/thread/272110

+0

Danke, ich werde das versuchen :) – user6250770

+0

Insha allah .. ich werde das tun. :) – user6250770

0

Sie können mehr über Daten erfahren in vaading in diesen beiden Links Bindung:

Datamodel overview und SQL container

Sobald Sie den Zugriff auf die SQL-Daten haben, können Sie die n Verwenden Sie eine Tabelle oder ein Raster, um die Daten anzuzeigen. Es gibt auch andere Lösungen wie JPAContainer oder BeanItemContainers, abhängig davon, wie Sie Ihre Anwendungslogik strukturieren möchten.

+0

Danke, ja ich muss viel über Vaadin lernen – user6250770