1、编写Student类, 1)编写包括两个成员变量和对应的get和set方法; 2)为了保证与TableView的数据绑定,将成员变量设置为StringProperty类型,编写stuidProperty方法和stunameProperty方法进行数据的返回。 具体内容可以参考gitee中的代码。 2、使用fxml绘制界面 1)在界面中添加一个Button和一个TableView,其中Button用于响应查询事件,TableView用于展示学生信息。 2)对Button进行id修改,并添加事件名称; 3)对TableView进行id修改,并对每一列的id进行修改 3、编写一个ConnectionManager类用于管理与数据库的连接 1)确定多个常量,包括加载驱动的字符串、URL、数据库用户名和密码 2)编写ConnectionManageer的构造方法,采用单例模式; 3)编写getConnection方法用户获取数据库连接对象; 具体内容可以参考gitee中的代码。 4、编写Controller代码 1)编写一个getStudents方法,用于从数据库中获取学生信息,返回类型可以为学生集合。 2)编写Button的响应事件,通过TableView对数据进行展示。
时间: 2024-03-09 18:45:16 浏览: 60
好的,明白了您的问题!以下是对您提出的问题的回答:
首先,我想确认一下您的问题是否与Java编程有关?因为您提到了Java中的类和UI界面设计。如果是的话,我可以帮助您回答这些问题。
1、编写Student类,包括两个成员变量和对应的get和set方法;为了保证与TableView的数据绑定,将成员变量设置为StringProperty类型,编写stuidProperty方法和stunameProperty方法进行数据的返回。
可以参考以下代码:
```java
public class Student {
private StringProperty stuid;
private StringProperty stuname;
public Student(String stuid, String stuname) {
this.stuid = new SimpleStringProperty(stuid);
this.stuname = new SimpleStringProperty(stuname);
}
public StringProperty stuidProperty() {
return stuid;
}
public StringProperty stunameProperty() {
return stuname;
}
public String getStuid() {
return stuid.get();
}
public void setStuid(String stuid) {
this.stuid.set(stuid);
}
public String getStuname() {
return stuname.get();
}
public void setStuname(String stuname) {
this.stuname.set(stuname);
}
}
```
2、使用FXML绘制界面,添加一个Button和一个TableView,其中Button用于响应查询事件,TableView用于展示学生信息。对Button进行ID修改,并添加事件名称;对TableView进行ID修改,并对每一列的ID进行修改。
可以参考以下FXML代码:
```xml
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/15.0.1"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<Button fx:id="queryBtn" layoutX="50.0" layoutY="20.0" onAction="#queryStudents" text="查询"/>
<TableView fx:id="tableView" layoutX="50.0" layoutY="70.0" prefHeight="280.0" prefWidth="500.0">
<columns>
<TableColumn fx:id="stuidCol" prefWidth="150.0" text="学号"/>
<TableColumn fx:id="stunameCol" prefWidth="150.0" text="姓名"/>
</columns>
</TableView>
</children>
</AnchorPane>
```
3、编写一个ConnectionManager类用于管理与数据库的连接,确定多个常量,包括加载驱动的字符串、URL、数据库用户名和密码。编写ConnectionManager的构造方法,采用单例模式;编写getConnection方法用户获取数据库连接对象。
可以参考以下代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
private static ConnectionManager instance = null;
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
private ConnectionManager() {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static ConnectionManager getInstance() {
if (instance == null) {
instance = new ConnectionManager();
}
return instance;
}
public Connection getConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
```
4、编写Controller代码,编写一个getStudents方法,用于从数据库中获取学生信息,返回类型可以为学生集合。编写Button的响应事件,通过TableView对数据进行展示。
可以参考以下代码:
```java
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Controller {
@FXML
private Button queryBtn;
@FXML
private TableView<Student> tableView;
@FXML
private TableColumn<Student, String> stuidCol;
@FXML
private TableColumn<Student, String> stunameCol;
@FXML
private void initialize() {
stuidCol.setCellValueFactory(cellData -> cellData.getValue().stuidProperty());
stunameCol.setCellValueFactory(cellData -> cellData.getValue().stunameProperty());
}
@FXML
private void queryStudents() {
ObservableList<Student> students = FXCollections.observableArrayList();
Connection connection = ConnectionManager.getInstance().getConnection();
try {
String sql = "SELECT * from student";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
String stuid = resultSet.getString("stuid");
String stuname = resultSet.getString("stuname");
Student student = new Student(stuid, stuname);
students.add(student);
}
tableView.setItems(students);
} catch (SQLException e) {
e.printStackTrace();
}
}
private ObservableList<Student> getStudents() {
ObservableList<Student> students = FXCollections.observableArrayList();
Connection connection = ConnectionManager.getInstance().getConnection();
try {
String sql = "SELECT * from student";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
String stuid = resultSet.getString("stuid");
String stuname = resultSet.getString("stuname");
Student student = new Student(stuid, stuname);
students.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
}
```
以上是对您提出的问题的回答,希望对您有所帮助!
阅读全文