javafx通讯录管理(数据库版本)

主类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;
    }
}
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值