JavaFX将数据库数据输出到TableView表格中⼀ 、创建Fxml⽂件
⽤Javafx Scene Builder 编辑页⾯,创建tableview(表格)和tablecolum(表格中的列),并为其设置fxid;
⼆、⽣成fxml⽂件的控制类;
三、创建数据库的连接类(使⽤JDBC驱动);
Connect.java
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Connect {
// 连接数据库url
static String url;
// 创建Properties对象
static Properties info = new Properties();
// 驱动程序加载
static {
// 获得属性⽂件输⼊流
InputStream input = ResourceAsStream("config.properties");
try {
// 加载属性⽂件内容到Properties对象
info.load(input);
// 从属性⽂件中取出url
url = Property("url");
// 从属性⽂件中取出driver
String driverClassName = Property("driver");
Class.forName(driverClassName);
System.out.println("驱动程序加载成功...");
} catch (ClassNotFoundException e) {
System.out.println("驱动程序加载失败...");
} catch (IOException e) {
System.out.println("加载属性⽂件失败...");
}
}
超人不会飞歌词// 获得数据库连接
public static Connection getConnection() {
// 创建数据库连接
Connection conn = null;
try {
conn = Connection(url, info);
// System.out.println("数据库连接成功!");
} catch (SQLException e) {
System.out.println("数据库连接失败!");
System.out.println(url);
System.out.println(info);
}衡山派
return conn;
}
}
四、控制类需继承抽象类initable,并实现为实现的抽象⽅法;
五、获取数据库连接:
Connection conn = Connection();
写数据库查询语句:
String sql="select * from Test";
使⽤prepareStatement prep = new prepareStatement(sql);
执⾏数据库语句。
(1)如果执⾏的数据库语句是查询语句,则会返回查询结果
使⽤ Resultset res = uteQuery()来执⾏查询并将查询结果存⼊res中
保罗 沃克车祸身亡(2)如果执⾏的数据库语句是⾮查询语句(如插⼊、删除等),则没有返回结果
使⽤ Resultset res = ute()来执⾏。
⽤错会报错。
六、创建ObservableList<Data> cellData = FxCollections.observableArraylist();
Data 类是需要插⼊tableview表格的数据类型
如插⼊表格的每⾏数据都为⼀个字符串,则Data类应定义变量:
SimpleStringProperty str1 = new SimpleStringProperty();
并为变量创建访问器(getStr)和修改器(setStr)
并创建这个类的构造⽅法Data(string)。
做薯片七、利⽤cellData.add(new Data(string))⽅法填充数据进⼊cellData中。
tableview.setCellvalueFactory(cellData-&value().getStr())
最后使⽤tableview.SetItem(cellData)绑定数据给表格即可
⾸先需要⼀个Model类来构建数据结构和⽅法,然后创建⼀个Observablelist来与TableView绑定,Observablelist中存储Model类的对象。
下⾯是例⼦:
Model class
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public Person {
public Person(String id, String name){
this.setId(id);
this.setName(name);
}
private StringProperty id; //也可以在这⾥直接new
public void setId(String value){ idProperty().set(value);}
public String getId(){ return idProperty().get(); }
public StringProperty idProperty(){
if(id == null) id = new SimpleStringProperty(this, "id");
考驾驶证流程return id;
}
private StringProperty name;
public void setName(String value){ nameProperty().set(value);}
public String getName(){ return idProperty().get(); }
public StringProperty nameProperty(){
if(name == null) name = new SimpleStringProperty(this, "name");
return name;
}
}
所有属性使⽤对应的Property属性,每个属性对应三个函数:get(), set(), Property(),其中Property⽅法⽤于获得变量。除了上⾯的写法,也可以声明变量的时候直接new,这样Property()⽅法只需要return。
Controller class
@FXML
private TableView<Person> personTable;
@FXML
private TableColumn<Person, String> idColumn;
@FXML
private TableColumn<Person, String> nameColumn;
//⽤于保存数据,<>中为上⾯Model类的类名
private ObservableList<Person> personData = FXCollections.observableArrayList();
部首/**
* 在fxml⽂件完成载⼊时⾃动被调⽤
*/
@FXML
private void initialize(){
idColumn.setCellValueFactory(cellData -> Value().idProperty());
nameColumn.setCellValueFactory(cellData -> Value().nameProperty());
//绑定数据到TableView
personTable.setItems(personData);
//添加数据到personData,TableView会⾃动更新
personData.add(new Person("007", "爱谁谁"));
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论