はじめに:Javaでデータベースにアクセスしよう!
「アプリにデータ保存できたらいいのに…」
そんな思いを叶えてくれるのが、Javaとデータベースの連携です!
この記事では、Javaからデータベース(MySQL)に接続して、データの登録・表示・更新・削除ができるようになるまでの流れを、初心者にもわかりやすく解説します。
1. JDBCって何?
JDBC(Java Database Connectivity)は、Javaアプリとデータベースをつなぐための仕組みです。
JDBCを使えば以下のことが可能になります:
- SQL文でデータベース操作(INSERT/SELECT/UPDATE/DELETE)
- テーブル内のデータをJavaで扱う
- 複数のDBにも共通で使えるAPI構造
2. 開発環境と準備
🧰 必要なもの
| 項目 | 内容 |
|---|---|
| JDK | Java本体(Java 17推奨) |
| IDE | Eclipse/IntelliJ/VSCode |
| DB | MySQL(またはPostgreSQL) |
| JDBCドライバ | MySQL Connector/Jなど |
✅ DBとテーブル作成(MySQL)
CREATE DATABASE sampledb;
USE sampledb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
3. JavaからDBに接続する基本コード
import java.sql.*;
public class DbConnect {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/sampledb";
String user = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password)) {
System.out.println("接続成功!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4. CRUD操作を実装してみよう
🔸 INSERT(データ追加)
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "山田太郎");
ps.setString(2, "yamada@example.com");
ps.executeUpdate();
🔹 SELECT(データ取得)
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while (rs.next()) {
System.out.println(rs.getInt("id") + ":" + rs.getString("name"));
}
🔸 UPDATE(更新)
String sql = "UPDATE users SET email=? WHERE id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "newmail@example.com");
ps.setInt(2, 1);
ps.executeUpdate();
🔹 DELETE(削除)
String sql = "DELETE FROM users WHERE id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 1);
ps.executeUpdate();
5. 安全に使うための工夫
✅ PreparedStatement を使おう
- SQLインジェクションを防げる
?プレースホルダで値を安全に挿入できる
6. リソース管理と例外処理
try (Connection conn = DriverManager.getConnection(...);
PreparedStatement ps = conn.prepareStatement(...)) {
// SQL処理
} catch (SQLException e) {
e.printStackTrace();
}
try-with-resourcesを使うと、自動的にリソースが閉じられて安心!
7. DAOとDTOで設計をきれいに
🧱 DTO(Data Transfer Object)
public class User {
private int id;
private String name;
private String email;
// getter, setter
}
🧱 DAO(Data Access Object)
public class UserDao {
public List<User> findAll() {
// DBからUser一覧を取得して返す
}
}
8. WebアプリでDB連携してみよう
Servletで呼び出す例:
@WebServlet("/users")
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
List<User> users = new UserDao().findAll();
req.setAttribute("users", users);
req.getRequestDispatcher("users.jsp").forward(req, res);
}
}
9. トランザクションでまとめて操作
conn.setAutoCommit(false);
try {
// insert, updateなど複数処理
conn.commit();
} catch (SQLException e) {
conn.rollback();
}
10. 学習の次のステップ
🔹 ORM(HibernateやSpring JPA)にも挑戦!
JDBCを理解したら、次はHibernateやSpring Data JPAを使ってより効率よくデータ操作ができるようになります。
11. 学習を支える書籍とサービス
📗 書籍で学ぶなら:
→ 絶対にJavaプログラマーになりたい人へ。
JDBCやDAO設計、例題を丁寧に解説!
🧑🏫 実践で伸ばしたいなら:
- コードレビューで安心!
- 転職・就職サポートもバッチリ!
✨まとめ
JDBCを使えば、Javaで本格的なアプリケーションが作れるようになります。
基本を押さえ、確実にステップアップしましょう!


コメント