利用Javaswing与mysql数据库写一个家庭理财管理系统,包含界面实现,数据库连接
时间: 2023-07-20 21:30:06 浏览: 62
好的,下面是一个简单的JavaSwing和MySQL实现的家庭理财管理系统的示例,包含界面实现和数据库连接。
首先,需要创建一个MySQL数据库,可以通过MySQL Workbench等工具创建。在数据库中创建需要的表,例如账户表和收支明细表。
接下来,创建JavaSwing界面。可以使用Eclipse等IDE进行创建。以下是一个简单的界面实现示例:
```java
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class FinancialManagementSystem extends JFrame {
private JPanel contentPane;
private JTextField textFieldAccountName;
private JTextField textFieldAccountBalance;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FinancialManagementSystem frame = new FinancialManagementSystem();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public FinancialManagementSystem() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("账户名称:");
lblNewLabel.setBounds(56, 44, 66, 15);
contentPane.add(lblNewLabel);
textFieldAccountName = new JTextField();
textFieldAccountName.setBounds(132, 41, 144, 21);
contentPane.add(textFieldAccountName);
textFieldAccountName.setColumns(10);
JLabel lblNewLabel_1 = new JLabel("账户余额:");
lblNewLabel_1.setBounds(56, 83, 66, 15);
contentPane.add(lblNewLabel_1);
textFieldAccountBalance = new JTextField();
textFieldAccountBalance.setBounds(132, 80, 144, 21);
contentPane.add(textFieldAccountBalance);
textFieldAccountBalance.setColumns(10);
JButton btnNewButton = new JButton("添加账户");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String accountName = textFieldAccountName.getText();
double accountBalance = Double.parseDouble(textFieldAccountBalance.getText());
// TODO: 将账户信息写入数据库
textFieldAccountName.setText("");
textFieldAccountBalance.setText("");
}
});
btnNewButton.setBounds(132, 128, 93, 23);
contentPane.add(btnNewButton);
}
}
```
以上代码创建了一个简单的添加账户的界面,包含账户名称和账户余额的输入框和一个添加账户的按钮。
为了连接MySQL数据库,需要使用JDBC驱动程序。可以下载并添加MySQL的JDBC驱动程序到项目中,然后使用以下代码进行连接和操作数据库:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DatabaseManager {
private static Connection connection;
public static Connection getConnection() {
if (connection == null) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/financial_management_system";
String username = "root";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
return connection;
}
public static void addAccount(String name, double balance) {
try {
Connection connection = DatabaseManager.getConnection();
String sql = "INSERT INTO account (name, balance) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, name);
statement.setDouble(2, balance);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代码中的getConnection方法用于获取数据库连接,addAccount方法用于将账户信息写入数据库中。
在添加账户的按钮的事件处理程序中,可以调用addAccount方法将账户信息写入数据库中:
```java
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String accountName = textFieldAccountName.getText();
double accountBalance = Double.parseDouble(textFieldAccountBalance.getText());
DatabaseManager.addAccount(accountName, accountBalance);
textFieldAccountName.setText("");
textFieldAccountBalance.setText("");
}
});
```
以上就是一个简单的JavaSwing和MySQL实现的家庭理财管理系统的示例,包含界面实现和数据库连接。需要根据具体需求进行修改和完善。