Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据库数据获取到TableView_Java_Sql_Javafx_Tableview - Fatal编程技术网

Java 将数据库数据获取到TableView

Java 将数据库数据获取到TableView,java,sql,javafx,tableview,Java,Sql,Javafx,Tableview,我在以下位置收到此代码的错误突出显示: ResultSet rs = stmt.executeQuery(sql); “executeQuery”在netbeans中获得“红色错误突出显示” 如何让它正常工作,如何让应用程序正常工作,如何用数据库中的数据填充JavaFXTableView 下面是代码的其余部分: 控制器类: import java.beans.Statement; import java.net.URL; import java.sql.Connection; import j

我在以下位置收到此代码的错误突出显示:

ResultSet rs = stmt.executeQuery(sql);
“executeQuery”在netbeans中获得“红色错误突出显示”

如何让它正常工作,如何让应用程序正常工作,如何用数据库中的数据填充JavaFXTableView

下面是代码的其余部分:

控制器类:

import java.beans.Statement;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.LinkedList;
import java.util.List;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class TesterUIController implements Initializable {

    static String JDBC_DRIVER = "org.h2.Driver";
    static String DB_URL = "jdbc:h2:file:C:/MyBeautifulCherrishabledb";

    static final String USER = "sa";
    static final String PASS = "";
    public static Connection conn = null;

    @FXML
    private TableView<dataClass> Table;
    @FXML
    private Button TestButton;
    @FXML
    private TableColumn<dataClass, Integer> colKey;
    @FXML
    private TableColumn<dataClass, String> colSalesNo;

    public static void main(String[] args) {
        System.out.println("Main has run");
    }

    @Override
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
        TestButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Button Pressed");
                colKey.setCellValueFactory(new PropertyValueFactory<dataClass, Integer>("Key"));
                colSalesNo.setCellValueFactory(new PropertyValueFactory<dataClass, String>("SalesNo"));

                Table.getItems().setAll(gobbledyGook());

            }
        });
    }

    public class dataClass {

        private IntegerProperty Key;

        public void setKey(int value) {
            KeyProperty().set(value);
        }

        public int getKey() {
            return KeyProperty().get();
        }

        public IntegerProperty KeyProperty() {
            if (Key == null) {
                Key = new SimpleIntegerProperty(this, "Key");
            }
            return Key;
        }
        private StringProperty SalesNo;

        public void setSalesNo(String value) {
            SalesNoProperty().set(value);
        }

        public String getSalesNo() {
            return SalesNoProperty().get();
        }

        public StringProperty SalesNoProperty() {
            if (SalesNo == null) {
                SalesNo = new SimpleStringProperty(this, "SalesNo");
            }
            return SalesNo;
        }
    }

    private List<dataClass> gobbledyGook() {
        Statement stmt = null;
        List ll = new LinkedList();

        try {
            // STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            // STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            // STEP 4: Execute a query
            System.out.println("Creating statement...");
            stmt = (Statement) conn.createStatement();

            String sql = "SELECT id, LovelyGuy FROM LOVELYPEOPLE";
            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next()) {

                int Key = rs.getInt(1);
                double saleNo = rs.getDouble(2);
                NumberFormat formatter = new DecimalFormat("###########");
                String SalesNo = formatter.format(saleNo);
                System.out.println(Key + ", " + SalesNo); //key + ", " + saleNo);

                dataClass roww = new dataClass();
                roww.setKey(Key);
                roww.setSalesNo(SalesNo);
                ll.add(roww);

            }
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(TesterUIController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return ll;
    }
}
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="600.0" prefWidth="700.0" xmlns:fx="http://javafx.com/fxml" fx:controller="testerui.TesterUIController">
  <children>
    <Button fx:id="TestButton" layoutX="14.0" layoutY="14.0" mnemonicParsing="false" text="Button" />
    <Pane layoutY="35.0" prefHeight="565.0" prefWidth="700.0">
      <children>
        <TableView fx:id="Table" layoutX="14.0" layoutY="14.0" prefHeight="226.0" prefWidth="672.0">
          <columns>
            <TableColumn prefWidth="75.0" text="Column X" fx:id="colKey" />
            <TableColumn prefWidth="75.0" text="Column X" fx:id="colSalesNo" />
          </columns>
        </TableView>
      </children>
    </Pane>
  </children>
</AnchorPane>
FXML:

import java.beans.Statement;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.LinkedList;
import java.util.List;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class TesterUIController implements Initializable {

    static String JDBC_DRIVER = "org.h2.Driver";
    static String DB_URL = "jdbc:h2:file:C:/MyBeautifulCherrishabledb";

    static final String USER = "sa";
    static final String PASS = "";
    public static Connection conn = null;

    @FXML
    private TableView<dataClass> Table;
    @FXML
    private Button TestButton;
    @FXML
    private TableColumn<dataClass, Integer> colKey;
    @FXML
    private TableColumn<dataClass, String> colSalesNo;

    public static void main(String[] args) {
        System.out.println("Main has run");
    }

    @Override
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
        TestButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Button Pressed");
                colKey.setCellValueFactory(new PropertyValueFactory<dataClass, Integer>("Key"));
                colSalesNo.setCellValueFactory(new PropertyValueFactory<dataClass, String>("SalesNo"));

                Table.getItems().setAll(gobbledyGook());

            }
        });
    }

    public class dataClass {

        private IntegerProperty Key;

        public void setKey(int value) {
            KeyProperty().set(value);
        }

        public int getKey() {
            return KeyProperty().get();
        }

        public IntegerProperty KeyProperty() {
            if (Key == null) {
                Key = new SimpleIntegerProperty(this, "Key");
            }
            return Key;
        }
        private StringProperty SalesNo;

        public void setSalesNo(String value) {
            SalesNoProperty().set(value);
        }

        public String getSalesNo() {
            return SalesNoProperty().get();
        }

        public StringProperty SalesNoProperty() {
            if (SalesNo == null) {
                SalesNo = new SimpleStringProperty(this, "SalesNo");
            }
            return SalesNo;
        }
    }

    private List<dataClass> gobbledyGook() {
        Statement stmt = null;
        List ll = new LinkedList();

        try {
            // STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            // STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            // STEP 4: Execute a query
            System.out.println("Creating statement...");
            stmt = (Statement) conn.createStatement();

            String sql = "SELECT id, LovelyGuy FROM LOVELYPEOPLE";
            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next()) {

                int Key = rs.getInt(1);
                double saleNo = rs.getDouble(2);
                NumberFormat formatter = new DecimalFormat("###########");
                String SalesNo = formatter.format(saleNo);
                System.out.println(Key + ", " + SalesNo); //key + ", " + saleNo);

                dataClass roww = new dataClass();
                roww.setKey(Key);
                roww.setSalesNo(SalesNo);
                ll.add(roww);

            }
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(TesterUIController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return ll;
    }
}
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="600.0" prefWidth="700.0" xmlns:fx="http://javafx.com/fxml" fx:controller="testerui.TesterUIController">
  <children>
    <Button fx:id="TestButton" layoutX="14.0" layoutY="14.0" mnemonicParsing="false" text="Button" />
    <Pane layoutY="35.0" prefHeight="565.0" prefWidth="700.0">
      <children>
        <TableView fx:id="Table" layoutX="14.0" layoutY="14.0" prefHeight="226.0" prefWidth="672.0">
          <columns>
            <TableColumn prefWidth="75.0" text="Column X" fx:id="colKey" />
            <TableColumn prefWidth="75.0" text="Column X" fx:id="colSalesNo" />
          </columns>
        </TableView>
      </children>
    </Pane>
  </children>
</AnchorPane>
你已经进口了

import java.beans.Statement;
你应该使用

import java.sql.Statement;

这个['executeQuery'在netbeans中得到“红色错误突出显示”是什么意思?那个Netbeans IDE不能编译你的代码?嘿。谢谢你看我的问题。刚刚添加了错误消息。我认为我的代码不会编译,因为我编写“executeQuery”的方式。我就是这个意思,嘿。谢谢你,伙计。现在代码运行了!但是,数据库数据不会打印在TableView中。有什么想法吗?谢谢你的回复,阿哈曼。我让另一部分工作。再次感谢。