はじめに|Javaの学習に「ToDoアプリ」は最適!
Javaを学び始めたけど、実践的なアプリを作ってみたい。そんな方におすすめなのが「ToDoリストアプリ」です。
本記事では、以下のような機能を備えたシンプルだけど実用的なToDoアプリをJavaで作成します。
- Swingを使ったGUI(デスクトップ画面)
- MySQLデータベースへの保存・取得
- タスクの追加・表示・削除機能
「画面があって、データベースに保存される」というだけで、一気に“アプリ感”が増しますよ!
開発環境
- Javaバージョン:Java 11以上推奨
- IDE:Eclipse / IntelliJ IDEA など
- DB:MySQL 8.x
- JDBCドライバ:MySQL Connector/J
- ライブラリ:Java標準(外部ライブラリ不要)
アプリ完成イメージ
- タスクの入力欄+追加ボタン
- 登録済みタスクの一覧表示
- 各タスクに「削除」ボタン
- データはすべてMySQLに保存される
💡 完成後のアプリは「予定管理ツール」や「業務タスク進捗管理」などにも応用できます!
ステップ① MySQLにテーブルを作成する
まずはタスクを保存するテーブルを作ります。
CREATE DATABASE todo_app;
USE todo_app;
CREATE TABLE tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ステップ② JDBC接続用クラスの作成
// DBConnection.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private static final String URL = "jdbc:mysql://localhost:3306/todo_app";
private static final String USER = "root";
private static final String PASSWORD = "your_password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
ステップ③ GUIの基本画面を作る(Swing)
// ToDoApp.java
import javax.swing.*;
import java.awt.*;
public class ToDoApp extends JFrame {
public ToDoApp() {
setTitle("ToDoリスト");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 上部:入力欄+追加ボタン
JPanel inputPanel = new JPanel();
JTextField taskField = new JTextField(20);
JButton addButton = new JButton("追加");
inputPanel.add(taskField);
inputPanel.add(addButton);
add(inputPanel, BorderLayout.NORTH);
// 中央:タスクリスト表示(後ほど作成)
JPanel taskPanel = new JPanel();
taskPanel.setLayout(new BoxLayout(taskPanel, BoxLayout.Y_AXIS));
JScrollPane scrollPane = new JScrollPane(taskPanel);
add(scrollPane, BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
new ToDoApp();
}
}
ステップ④ タスクの追加処理をMySQLと連携
// TaskDAO.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class TaskDAO {
public void addTask(String title) {
String sql = "INSERT INTO tasks (title) VALUES (?)";
try (Connection conn = DBConnection.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, title);
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<String> getTasks() {
List<String> tasks = new ArrayList<>();
String sql = "SELECT title FROM tasks ORDER BY created_at DESC";
try (Connection conn = DBConnection.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
tasks.add(rs.getString("title"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return tasks;
}
}
ステップ⑤ タスクリストを画面に表示
ToDoApp.javaの中に以下を追加して、追加ボタンの動作を定義します。
TaskDAO dao = new TaskDAO();
addButton.addActionListener(e -> {
String title = taskField.getText();
if (!title.isEmpty()) {
dao.addTask(title);
taskField.setText("");
refreshTasks(taskPanel, dao);
}
});
refreshTasks(taskPanel, dao);
refreshTasks()
メソッドを追加
private void refreshTasks(JPanel taskPanel, TaskDAO dao) {
taskPanel.removeAll();
for (String title : dao.getTasks()) {
JLabel label = new JLabel(title);
taskPanel.add(label);
}
taskPanel.revalidate();
taskPanel.repaint();
}
まとめ|GUI × DB連携で、実用性がグッとアップ!
JavaでGUIアプリを作れるようになると、勉強が一気に面白くなります。そして、MySQLとの連携ができれば、実務に通用するスキルに!
ToDoリストアプリはその第一歩として非常におすすめ。今回紹介したコードをベースに、以下のような拡張も可能です。
- タスクに「完了」チェックボックスを追加
- 締切日時の登録
- 完了・未完了で色分け
- ログイン機能の追加 など
おすすめ関連記事
「将来は、エンジニアとしてもっとキャリアアップしたい」
そう考えている方にとって、実務で使える技術を学ぶことは最大の武器になります。
中でも「Java × データベース × GUI」の組み合わせは、多くの企業で求められる実践スキルの一つ。
今回は、初心者でも取り組める「ToDoリストアプリ」の作成を通して、アプリ開発の基本とMySQLとの連携方法をわかりやすく解説しました。
ちなみにこうしたスキルは、キャリアアップ転職でも確実に評価されるポイントになります。
もしあなたが「今の職場でこれ以上の成長が望めない」「もっと高年収・高待遇の企業に行きたい」と感じているなら、こちらの記事も参考にしてください👇