主类Table01
package sample;
import javafx.application.Application;
import javafx.beans.Observable;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import javax.tools.Tool;
import java.sql.*;
public class Table01 extends Application {
//上半部分
VBox vAll = new VBox();
VBox vb = new VBox();
HBox h1 = new HBox();
HBox h2 = new HBox();
HBox h3 = new HBox();
TextField tfName = new TextField();
TextField tfTel1 = new TextField();
TextField tfTel2 = new TextField();
TextField tfEmail = new TextField();
Button btAdd = new Button("新增");
Button btQuery = new Button("查询");
Button btChange = new Button("更改");
Button btDel = new Button("删除");
TableView table = new TableView();
//下半部分
TableColumn idCol = new TableColumn("序号");
TableColumn nameCol = new TableColumn("姓名");
TableColumn tel1Col = new TableColumn("手机");
TableColumn tel2Col = new TableColumn("办公电话");
TableColumn emailCol = new TableColumn("邮箱");
//文本框中的信息
String sName = tfName.getText();
String sTel1 = tfTel1.getText();
String sTel2 = tfTel2.getText();
String sEmail = tfEmail.getText();
//数据
final ObservableList<Person> data = FXCollections.observableArrayList(//添加数据
// new Person(String.valueOf(count++),"1","1414134", "Smith", "jacob.smith@example.com"),
// new Person(String.valueOf(count++),"2","1541414","Johnson", "isabella.johnson@example.com"),
// new Person(String.valueOf(count++),"3","14146614","Williams", "ethan.williams@example.com"),
// new Person(String.valueOf(count++),"4","141463314","Jones", "emma.jones@example.com"),
// new Person(String.valueOf(count++),"5","14122414","Brown", "michael.brown@example.com")
);
@Override
public void start(Stage stage) {
stage.setTitle("Table View Sample");
stage.setWidth(450);
stage.setHeight(600);
//上半部分
h1.getChildren().addAll(new Label("姓名:"),tfName,new Label("手机:"),tfTel1);
h2.getChildren().addAll(new Label("办公电话:"),tfTel2,new Label("邮箱:"),tfEmail);
h3.getChildren().addAll(btAdd,btChange,btQuery,btDel);
h3.setSpacing(40);
h3.setAlignment(Pos.TOP_CENTER);
vb.getChildren().addAll(h1,h2,h3);
vb.setSpacing(10);
table.setEditable(true);
//设置自动拉满 table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
//下半部分
table.getColumns().addAll(idCol,nameCol,tel1Col,tel2Col,emailCol);
//列与person类绑定
idCol.setCellValueFactory(new PropertyValueFactory<Person,String>("id"));
nameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("name"));
tel1Col.setCellValueFactory(new PropertyValueFactory<Person,String>("tel1"));
tel2Col.setCellValueFactory(new PropertyValueFactory<Person,String>("tel2"));
emailCol.setCellValueFactory(new PropertyValueFactory<Person,String>("email"));
// table.setItems(data);
// System.out.println(data.size());
// data.add(new Person("2","45","rsdf","f"));
// data.remove(3);
// System.out.println(" "+nameCol.getCellObservableValue(1).getValue());
//合并
VBox vbox = new VBox();
vbox.setSpacing(5);
vbox.setPadding(new Insets(10, 0, 0, 10));
vbox.getChildren().addAll(vb,table);
Scene scene = new Scene(new Group());
((Group) scene.getRoot()).getChildren().addAll(vbox);
// table.getColumns().add(1,"ttt");
stage.setScene(scene);
stage.show();
btAdd.setOnAction(e->{
add();
});
btDel.setOnAction(e->{
del();
clean();
});
btQuery.setOnAction(e->{
query();
});
btChange.setOnAction(e->{
change();
});
}
static Connection conn = null;
static PreparedStatement ps = null;
static ResultSet rs = null;
public static void main(String[] args) throws Exception {
//1.加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("success");
//2.通过DriverManager获取数据库连接
// String url = "jdbc:mysql://localhost:3306/mysql?severTimezone=GMT%2B8";
String url = "jdbc:mysql://localhost:3306/label?sever";
conn = DriverManager.getConnection(url,"root","wenchi0124");
//3.创建数据库对象
// ResultSet rs = statement.executeQuery("SELECT * FROM user");
// System.out.println(rs);
launch(args);
}
public boolean IsIntact(){ //判断是否
sName = tfName.getText();
sTel1 = tfTel1.getText();
sTel2 = tfTel2.getText();
sEmail = tfEmail.getText();
if(sName.equals("")||sTel1.equals("")||sTel2.equals("")||sEmail.equals("")){
System.out.println("请输入正确的查询信息");
return true;
}
return false;
}
public void clean(){
tfName.clear();
tfTel1.clear();
tfTel2.clear();
tfEmail.clear();
}
public void add() {
if(IsIntact())
return;
// System.out.println(Tools.list);
// System.out.println(Tools.list.contains(sName));
if(!(Tools.list.contains(sName))){
System.out.println("-------");
Tools.list.add(sName);
Person p = new Person(sName,sTel1,sTel2,sEmail);
String sql = "insert into Person (id,name,tel1,tel2,email) values (?,?,?,?,?)";
try {
System.out.println("success2");
ps = conn.prepareStatement(sql);
ps.setString(1,p.id);
ps.setString(2,p.name);
ps.setString(3,p.tel1);
ps.setString(4,p.tel2);
ps.setString(5,p.email);
ps.execute();
Statement statement = conn.createStatement();
rs = statement.executeQuery("SELECT * FROM Person");
Tools.count = 1;
while(rs.next()){
Person pp = new Person(rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
}
System.out.println(Tools.list);
clean();
}
public void change(){
if(IsIntact())
return;
sName = tfName.getText();
String sql = "update Person set id=? name=? tel1=? tel2=? email=? where name = '"+sName+"' ";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,tfName.getText());
ps.setString(2,tfName.getText());
ps.setString(3,tfTel1.getText());
ps.setString(4,tfTel2.getText());
ps.setString(5,tfEmail.getText());
ps.execute();
Statement statement = conn.createStatement();
rs = statement.executeQuery("select * from Person ");
Tools.count = 1;
while(rs.next()){
Person pp = new Person(rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
clean();
}
//
public void query(){
String sql = "select * from Person where name = ?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,tfName.getText());
rs = ps.executeQuery();
Statement statement = conn.createStatement();
// rs = statement.executeQuery("select * from Person where name = ?");
Tools.count = 1;
data.clear();
while(rs.next()){
Person pp = new Person(rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
clean();
}
//
public void del(){
sName = tfName.getText();
String sql = "delete from Person where name = ?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,sName);
ps.execute();
Statement statement = conn.createStatement();
rs = statement.executeQuery("SELECT * FROM Person");
Tools.count = 1;
data.clear();
while(rs.next()){
Person pp = new Person(rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
clean();
}
}
Person类
package sample;
import javafx.beans.property.SimpleStringProperty;
import java.util.HashMap;
public class Person {
String id;
String name;
String tel1;
String tel2;
String email;
public Person(String name, String tel1, String tel2, String email) {
this.id = String.valueOf(Tools.count++);
this.name = name;
this.tel1 = tel1;
this.tel2 = tel2;
this.email = email;
}
public Person(String id, String name, String tel1, String tel2, String email) {
this.id = id;
this.name = name;
this.tel1 = tel1;
this.tel2 = tel2;
this.email = email;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel1() {
return tel1;
}
public void setTel1(String tel1) {
this.tel1 = tel1;
}
public String getTel2() {
return tel2;
}
public void setTel2(String tel2) {
this.tel2 = tel2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}