财务管理系统 JAVA
概述
财务管理系统是企业中常见的一个管理系统,用于管理和监控企业的财务活动。本文将介绍如何使用Java编写一个简单的财务管理系统,包括如何设计数据库表结构,如何实现基本的数据操作,以及如何使用JavaFX构建用户界面。
数据库设计
在财务管理系统中,通常需要管理以下几个重要的数据对象:
- 用户(User):用于管理系统的用户信息,包括用户名、密码、角色等。
- 客户(Customer):用于管理客户信息,包括客户名称、联系人、联系电话等。
- 产品(Product):用于管理产品信息,包括产品名称、价格、库存等。
- 订单(Order):用于管理订单信息,包括订单编号、客户、产品、数量等。
根据以上需求,我们可以设计如下的数据库表结构:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
role VARCHAR(20) NOT NULL
);
CREATE TABLE customer (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
contact VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL
);
CREATE TABLE product (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
stock INT NOT NULL
);
CREATE TABLE order (
id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customer(id),
FOREIGN KEY (product_id) REFERENCES product(id)
);
数据操作
连接数据库
在Java中,我们可以使用JDBC连接数据库。首先,我们需要引入JDBC相关的依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
然后,我们可以编写以下代码来连接到数据库:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseUtil {
public static Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost:3306/finance?useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String password = "password";
return DriverManager.getConnection(url, username, password);
}
}
用户管理
添加用户
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserManager {
public void addUser(String username, String password, String role) {
try (Connection conn = DatabaseUtil.getConnection()) {
String sql = "INSERT INTO user (username, password, role) VALUES (?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, username);
statement.setString(2, password);
statement.setString(3, role);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
删除用户
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserManager {
public void deleteUser(int id) {
try (Connection conn = DatabaseUtil.getConnection()) {
String sql = "DELETE FROM user WHERE id = ?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setInt(1, id);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
修改用户
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserManager {
public void updateUser(int id, String password) {
try (Connection conn = DatabaseUtil.getConnection()) {
String sql = "UPDATE user SET password = ? WHERE id = ?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, password);
statement.setInt(2, id);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
客户管理
添加客户
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class CustomerManager {
public void addCustomer(String name, String contact, String phone) {
try (Connection conn = DatabaseUtil.getConnection()) {
String sql = "INSERT INTO customer (name, contact, phone) VALUES (?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, contact);
statement.setString(3, phone);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
删除客户
import java.sql.Connection