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