关于#java#的问题:java电话簿管理单机版,用javafx实现的图形界面,怎样将数据保存到数据库(开发工具-eclipse)

java电话簿管理单机版,用javafx实现的图形界面,怎样将数据保存到数据库

用jdbc,单机的出于简单考虑,用 sqlite 作为数据库就可以了。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7583504
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于javaFx 操作串口 报错的问题~
  • 除此之外, 这篇博客: MIS课设 JavaFX考试管理系统中的 登录页 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 功能名称快捷键
    登录Enter
  • 以下回答由chatgpt基于相关博客总结生成:

    首先,要将Java电话簿管理单机版中的数据保存到数据库,你需要进行以下几个步骤:

    1. 首先,确定使用哪种数据库。常见的数据库有MySQL、Oracle、PostgreSQL等。选择一个你熟悉或者想要学习的数据库作为你的目标数据库。

    2. 在Eclipse中,导入数据库操作所需的JDBC驱动。具体步骤如下:

    3. 下载并解压你选择的数据库的JDBC驱动,通常是一个.jar文件。
    4. 在Eclipse中,右键点击项目,选择"Build Path" > "Configure Build Path"。
    5. 在弹出的对话框中,选择"Libraries"选项卡,然后点击"Add JARs"按钮。
    6. 选择你解压的JDBC驱动的.jar文件,点击"OK"。

    7. 在你的Java代码中引入所需的包,以及编写数据库连接代码。示例代码如下:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class DatabaseConnection {
        private static final String DB_URL = "jdbc:mysql://localhost/your_database_name";
        private static final String USERNAME = "your_username";
        private static final String PASSWORD = "your_password";
    
        public static Connection getConnection() {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
                return conn;
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
    

    将上述代码中的DB_URLUSERNAMEPASSWORD替换为你自己的数据库信息。

    1. 现在你可以编写代码来保存用户输入的数据到数据库中。首先,创建一个方法来执行插入数据的操作,示例代码如下:
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class PhoneBookDAO {
        public void saveContact(Contact contact) {
            String query = "INSERT INTO phonebook (name, phone_number) VALUES (?, ?)";
            try (Connection conn = DatabaseConnection.getConnection();
                 PreparedStatement stmt = conn.prepareStatement(query)) {
                stmt.setString(1, contact.getName());
                stmt.setString(2, contact.getPhoneNumber());
                stmt.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    上述代码中的Contact是一个自定义的类,用于表示电话簿中的联系人信息。namephone_number是数据库中的列名,根据你的数据库表结构修改。

    1. 在你的JavaFX代码中,当用户点击保存按钮或者其他触发保存操作的事件时,调用上述的保存方法,示例代码如下:
    import javafx.fxml.FXML;
    import javafx.scene.control.TextField;
    
    public class PhoneBookController {
        @FXML
        private TextField nameTextField;
    
        @FXML
        private TextField phoneNumberTextField;
    
        private PhoneBookDAO phoneBookDAO;
    
        public void initialize() {
            phoneBookDAO = new PhoneBookDAO();
        }
    
        @FXML
        private void saveContact() {
            String name = nameTextField.getText();
            String phoneNumber = phoneNumberTextField.getText();
    
            Contact contact = new Contact(name, phoneNumber);
            phoneBookDAO.saveContact(contact);
    
            // 清空输入框
            nameTextField.clear();
            phoneNumberTextField.clear();
        }
    }
    

    上述代码中,nameTextFieldphoneNumberTextField是你在JavaFX界面中定义的文本输入框,用于获取用户输入的姓名和电话号码。saveContact方法会将输入的数据保存到数据库,并清空输入框。

    这样,当用户在JavaFX界面输入联系人信息并点击保存按钮时,数据就会保存到数据库中了。

    这是一个基本的实现方案,具体的实现可能会根据你的项目结构和需求有所调整。如果你对某个步骤不够理解或者遇到问题,请随时提问。