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 프레임워크를 활용한 객체-관계 매핑 방법을 살펴보았습니다. 이러한 기술을 활용하여 다양한 데이터베이스 애플리케이션을 개발해 보세요
'GD's IT Lectures : 기초부터 시리즈 > 자바(JAVA) 기초부터 ~' 카테고리의 다른 글
[자바(JAVA)] 자바와 디자인 패턴 (0) | 2023.04.30 |
---|---|
[자바(JAVA)] 자바의 동시성과 병렬 처리 (0) | 2023.04.30 |
[자바(JAVA)] 자바와 블록체인 (0) | 2023.04.30 |
[자바(JAVA)] 자바와 인공지능 (0) | 2023.04.30 |
[자바(JAVA)] 자바와 모바일 애플리케이션 개발 (0) | 2023.04.30 |
댓글