CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

JavaとSQLを使用した簡単なGUI勘定系システムの例

2025-03-02 02:33:22 | JAVA
以下は、JavaとSQLを使用した簡単なGUI勘定系システムの例です。この例では、ユーザーが口座情報を管理できるシンプルなシステムを構築します。データベースにはSQLiteを使用し、JavaのSwingライブラリを使用してGUIを実装します。

### 1. データベースの準備
まず、SQLiteデータベースを作成し、口座情報を管理するテーブルを作成します。

```sql
-- accounts.db
CREATE TABLE accounts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
balance REAL NOT NULL
);
```

### 2. Javaプロジェクトの設定
Javaプロジェクトを作成し、SQLiteのJDBCドライバを追加します。`sqlite-jdbc`ライブラリを使用する場合は、MavenやGradleで依存関係を追加します。

#### Mavenの場合:
```xml
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.36.0.3</version>
</dependency>
```

### 3. Javaコードの実装
以下は、JavaでGUI勘定系システムを実装するコード例です。

```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

public class AccountManagementSystem extends JFrame {
private JTextField nameField;
private JTextField balanceField;
private JTextArea displayArea;

private Connection connection;

public AccountManagementSystem() {
initializeDatabase();
createUI();
}

private void initializeDatabase() {
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:accounts.db");
System.out.println("Database connected!");
} catch (Exception e) {
e.printStackTrace();
}
}

private void createUI() {
setTitle("Account Management System");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());

JPanel inputPanel = new JPanel(new GridLayout(3, 2));
inputPanel.add(new JLabel("Name:"));
nameField = new JTextField();
inputPanel.add(nameField);

inputPanel.add(new JLabel("Balance:"));
balanceField = new JTextField();
inputPanel.add(balanceField);

JButton addButton = new JButton("Add Account");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addAccount();
}
});
inputPanel.add(addButton);

JButton viewButton = new JButton("View Accounts");
viewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewAccounts();
}
});
inputPanel.add(viewButton);

add(inputPanel, BorderLayout.NORTH);

displayArea = new JTextArea();
add(new JScrollPane(displayArea), BorderLayout.CENTER);
}

private void addAccount() {
String name = nameField.getText();
double balance = Double.parseDouble(balanceField.getText());

try {
PreparedStatement ps = connection.prepareStatement("INSERT INTO accounts (name, balance) VALUES (?, ?)");
ps.setString(1, name);
ps.setDouble(2, balance);
ps.executeUpdate();
JOptionPane.showMessageDialog(this, "Account added successfully!");
} catch (SQLException e) {
e.printStackTrace();
}
}

private void viewAccounts() {
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM accounts");
displayArea.setText("");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
double balance = rs.getDouble("balance");
displayArea.append("ID: " + id + ", Name: " + name + ", Balance: " + balance + "\n");
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new AccountManagementSystem().setVisible(true);
}
});
}
}
```

### 4. 実行方法
1. SQLiteデータベースを作成し、`accounts`テーブルを作成します。
2. Javaプロジェクトを設定し、`sqlite-jdbc`ライブラリを追加します。
3. 上記のJavaコードをプロジェクトに追加し、`AccountManagementSystem`クラスを実行します。

### 5. 動作確認
- GUIが表示され、名前と残高を入力して「Add Account」ボタンをクリックすると、データベースに口座情報が追加されます。
- 「View Accounts」ボタンをクリックすると、データベースに登録されているすべての口座情報が表示されます。

この例は非常にシンプルな勘定系システムですが、実際のシステムではさらに機能を拡張することができます。例えば、口座間の送金機能や、口座の削除・更新機能などを追加することが考えられます。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。