初心者でもわかる!Javaでデータベース連携を実現する方法【JDBC徹底解説】

Java

はじめに:Javaでデータベースにアクセスしよう!

「アプリにデータ保存できたらいいのに…」
そんな思いを叶えてくれるのが、Javaとデータベースの連携です!

この記事では、Javaからデータベース(MySQL)に接続して、データの登録・表示・更新・削除ができるようになるまでの流れを、初心者にもわかりやすく解説します。


1. JDBCって何?

JDBC(Java Database Connectivity)は、Javaアプリとデータベースをつなぐための仕組みです。

JDBCを使えば以下のことが可能になります:

  • SQL文でデータベース操作(INSERT/SELECT/UPDATE/DELETE)
  • テーブル内のデータをJavaで扱う
  • 複数のDBにも共通で使えるAPI構造

2. 開発環境と準備

🧰 必要なもの

項目内容
JDKJava本体(Java 17推奨)
IDEEclipse/IntelliJ/VSCode
DBMySQL(または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で本格的なアプリケーションが作れるようになります。
基本を押さえ、確実にステップアップしましょう!

コメント

タイトルとURLをコピーしました