본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 자바와 데이터베이스

by GDNGY 2023. 4. 30.
37.1. 데이터베이스 개요

데이터베이스는 구조화된 데이터를 저장하고 검색할 수 있는 시스템입니다. 관계형 데이터베이스 (예: MySQL, PostgreSQL)와 NoSQL 데이터베이스 (예: MongoDB, Cassandra) 등 다양한 종류의 데이터베이스가 있습니다. 이러한 데이터베이스와 자바 애플리케이션을 연결하여 데이터를 읽고 쓸 수 있습니다.

 

37.2. JDBC (Java Database Connectivity)

JDBC는 자바 애플리케이션에서 관계형 데이터베이스에 접근할 수 있는 API입니다. 데이터베이스에 접속하고 SQL 쿼리를 실행하는 데 사용됩니다. 각 데이터베이스 벤더는 JDBC 드라이버를 제공하며, 이를 사용하여 데이터베이스와 통신할 수 있습니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCExample {

    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/example_db";
        String username = "user";
        String password = "password";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM example_table");

            while (resultSet.next()) {
                System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name"));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

37.3. 자바와 SQL 쿼리 실행

위의 예제에서처럼, 자바에서 SQL 쿼리를 실행하려면 Connection 객체와 Statement 객체를 사용합니다. PreparedStatement 객체를 사용하면 동적 쿼리를 생성할 수 있습니다. 다음은 PreparedStatement를 사용하는 예제입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class PreparedStatementExample {

    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/example_db";
        String username = "user";
        String password = "password";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            String query = "SELECT * FROM example_table WHERE id = ?";
            PreparedStatement preparedStatement = connection.prepareStatement(query);
            preparedStatement.setInt(1, 1);

            ResultSet resultSet = preparedStatement.executeQuery();

            if (resultSet.next()) {
                System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name"));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

37.4. 자바와 ORM (Object-Relational Mapping)

ORM은 객체와 관계형 데이터베이스 사이의 매핑을 제공하는 프로그래밍 기법입니다. ORM을 사용하면 데이터베이스 테이블을 객체로 표현하고, SQL 쿼리 없이 데이터를 읽고 쓸 수 있습니다. 자바에서는  Hibernate,  JPA (Java Persistence API) 등의 ORM 프레임워크를 사용할 수 있습니다. 예시로, JPA를 사용하여 간단한 CRUD(Create, Read, Update, Delete) 작업을 수행하는 방법을 살펴보겠습니다.

 

먼저, 엔티티 클래스를 정의합니다.

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;

    // Getters and Setters
}

 

그런 다음, JPA를 사용하여 CRUD 작업을 수행할 수 있습니다.

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAExample {
    public static void main(String[] args) {
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("example-unit");
        EntityManager entityManager = entityManagerFactory.createEntityManager();

        // Create
        entityManager.getTransaction().begin();
        Person person = new Person();
        person.setName("John Doe");
        entityManager.persist(person);
        entityManager.getTransaction().commit();

        // Read
        Person foundPerson = entityManager.find(Person.class, person.getId());
        System.out.println("Found person: " + foundPerson.getName());

        // Update
        entityManager.getTransaction().begin();
        foundPerson.setName("Jane Doe");
        entityManager.getTransaction().commit();

        // Delete
        entityManager.getTransaction().begin();
        entityManager.remove(foundPerson);
        entityManager.getTransaction().commit();

        entityManager.close();
        entityManagerFactory.close();
    }
}

 

이 글에서는 자바와 데이터베이스에 대해 소개하였습니다. JDBC를 사용하여 SQL 쿼리를 실행하는 방법과 ORM 프레임워크를 활용한 객체-관계 매핑 방법을 살펴보았습니다. 이러한 기술을 활용하여 다양한 데이터베이스 애플리케이션을 개발해 보세요

반응형

댓글