使用Derby数据库在Java中的应用

Derby是一个轻量级的、完全由Java编写的关系型数据库,它可以被嵌入到Java应用程序中,为开发者提供了一种方便的方式来存储和管理数据。在本文中,我们将介绍如何在Java应用程序中使用Derby数据库,并给出一些代码示例来帮助读者更好地理解这个过程。首先,我们将通过一个关系图来展示Derby数据库中的表结构。

erDiagram
    CUSTOMERS {
        INT ID
        VARCHAR NAME
        VARCHAR EMAIL
    }

连接数据库

在使用Derby数据库之前,我们首先需要连接到数据库。以下是一个简单的Java代码示例,用于建立与Derby数据库的连接:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DerbyConnection {
    private static final String URL = "jdbc:derby:myDB;create=true";

    public static void main(String[] args) {
        try {
            Connection connection = DriverManager.getConnection(URL);
            if (connection != null) {
                System.out.println("Connected to Derby database successfully!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用DriverManager类来获取与Derby数据库的连接,并打印出连接成功的消息。

创建表

一旦我们连接到了Derby数据库,接下来就是创建表来存储数据。以下是一个简单的Java代码示例,用于在Derby数据库中创建一个名为CUSTOMERS的表:

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

public class CreateTable {
    private static final String URL = "jdbc:derby:myDB;create=true";

    public static void main(String[] args) {
        try {
            Connection connection = DriverManager.getConnection(URL);
            Statement statement = connection.createStatement();
            String sql = "CREATE TABLE CUSTOMERS(ID INT PRIMARY KEY, NAME VARCHAR(255), EMAIL VARCHAR(255))";
            statement.executeUpdate(sql);
            System.out.println("Table created successfully!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用Statement对象执行SQL语句来创建名为CUSTOMERS的表,该表包含IDNAMEEMAIL三个字段。

插入数据

一旦我们创建了表,接下来就是向表中插入数据。以下是一个简单的Java代码示例,用于向CUSTOMERS表中插入一条记录:

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

public class InsertData {
    private static final String URL = "jdbc:derby:myDB;create=true";

    public static void main(String[] args) {
        try {
            Connection connection = DriverManager.getConnection(URL);
            Statement statement = connection.createStatement();
            String sql = "INSERT INTO CUSTOMERS(ID, NAME, EMAIL) VALUES(1, 'Alice', 'alice@example.com')";
            statement.executeUpdate(sql);
            System.out.println("Data inserted successfully!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用Statement对象执行SQL语句来向CUSTOMERS表中插入一条记录。

查询数据

最后,我们可以使用SQL语句来查询数据库中的数据。以下是一个简单的Java代码示例,用于查询CUSTOMERS表中的所有记录:

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

public class QueryData {
    private static final String URL = "jdbc:derby:myDB;create=true";

    public static void main(String[] args) {
        try {
            Connection connection = DriverManager.getConnection(URL);
            Statement statement = connection.createStatement();
            String sql = "SELECT * FROM CUSTOMERS";
            ResultSet resultSet = statement.executeQuery(sql);
            
            while(resultSet.next()){
                int id = resultSet.getInt("ID");
                String name = resultSet.getString("NAME");
                String email = resultSet.getString("EMAIL");
                System.out.println("ID: " + id + ", NAME: " + name + ", EMAIL: " + email);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用Statement对象执行SQL语句来查询CUSTOMERS表中的所有记录,并逐行打印出每条记录的IDNAMEEMAIL

通过以上代码示例,我们可以看到在Java应用程序中如何