Я настраиваю веб-приложение, используя VSCOde и Vaadin с Java. VsCode обновлен, и код, который я использовал исторически, сейчас не работает, но я не могу понять, почему. Мой ярлык - это единственное, что показывает, что сетки вообще не заполнено.
Я попытался сгенерировать столбцы, setColumns, getColumns и ничего не заполняет. Пожалуйста, смотрите мой код.
MainView:
enter code here
package horseRecord;
import java.util.List;
import javax.swing.text.AbstractDocument.Content;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.Grid.SelectionMode;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.server.PWA;
import com.vaadin.flow.router.Route;
@Route
@PWA(name = "EquiRecord", shortName = "EquiRecord")
public class MainView extends VerticalLayout {
private static final long serialVersionUID = 1L;
Connection connection = null;
public MainView() {
final VerticalLayout layout = new VerticalLayout();
layout.setSizeFull();
setContent(layout);
Grid<Horses> grid = new Grid<>(Horses.class);
// Database connection string
String connectionString = "jdbc:sqlserver://equirecord.database.windows.net:1433;database=EquiRecord;user=xxxxx@equirecord;password=xxxxxxxxx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
//new label
add(new H1("EquiRecord, Recording your horses health!"), layout);
try
{
// Connect and query the data
connection = DriverManager.getConnection(connectionString);
ResultSet rs = connection.createStatement().executeQuery("select * from horses;");
// Create a list of type Student (which we defined in Student.java)
List<Horses> horsesList = new ArrayList<Horses>();
while(rs.next()) {
horsesList.add(new Horses(
rs.getLong("microchip"),
rs.getString("horseName"),
rs.getDate("dateOfBirth")));
//rs.getString("FName"),
//rs.getString("SName")
}
// Create my grid
grid.setItems(horsesList);
grid.addColumn(Horses::getMicrochip).setHeader("Microchip");
grid.addColumn(Horses::getHorseName).setHeader("Horse Name");
grid.addColumn(Horses::getDateOfBirth).setHeader("Date of Birth");
//grid.addColumn(Horses::getFName);
//grid.addColumn(Horses::getSName);
//grid.setColumns("microchip", "horseName", "dateOfBirth");
grid.setSizeFull();
// This makes the grid the width of the page
// This makes the grid 'multi-select', adds the checkboxes for selecting to the side
grid.setSelectionMode(SelectionMode.MULTI);
}
catch(Exception e) {
layout.addComponentAsFirst(new Label(e.getMessage()));
}
setContent(layout);
}
private void setContent(Object layout) {
}
}
Лошади Класс:
package horseRecord;
import java.sql.Date;
class Horses
{
private Long microchip;
private String horseName;
private Date dateOfBirth;
//private String FName;
//private String SName;
Horses(Long microchip, String horseName, Date dateOfBirth)
{
this.microchip = microchip;
this.horseName = horseName;
this.dateOfBirth = dateOfBirth;
//this.FName = FName;
//this.SName = SName;
}
public String getHorseName() {
return horseName;
}
public void setHorseName(String horseName) {
this.horseName = horseName;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateofBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public Long getMicrochip() {
return microchip;
}
public void setMicrochip(Long microchip) {
this.microchip = microchip;
}
}
Я ожидаю сетку из трех столбцов, но сетка не отображается, кто-нибудь может увидеть, что я делаю неправильно?
Спасибо за любую помощь, которую вы можете оказать.