使用Java创建一个SQLite数据库

SQLite是一个轻量级的嵌入式数据库引擎,它提供了一种简单而又强大的数据库管理方式。在Java程序中,我们可以通过JDBC(Java Database Connectivity)来操作SQLite数据库。本文将介绍如何使用Java创建一个SQLite数据库,并进行相关的操作。

步骤

步骤一:引入SQLite JDBC驱动

首先,我们需要下载并引入SQLite JDBC驱动。可以在 [SQLite官网]( 下载对应的JDBC驱动Jar包,然后将其导入到项目的依赖中。

步骤二:创建数据库连接

接下来,我们需要创建一个数据库连接。通过java.sql.Connection接口可以实现与SQLite数据库的连接。下面是一个简单的连接示例:

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

public class SQLiteConnection {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 连接SQLite数据库
            conn = DriverManager.getConnection("jdbc:sqlite:test.db");
            System.out.println("数据库连接成功");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}

步骤三:创建数据库表

一旦连接成功,我们就可以创建数据库表。SQLite使用SQL语句来创建表格,下面是一个示例:

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

public class CreateTable {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = DriverManager.getConnection("jdbc:sqlite:test.db");
            stmt = conn.createStatement();
            String sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL)";
            stmt.executeUpdate(sql);
            System.out.println("表格创建成功");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}

步骤四:插入数据

我们可以使用SQL语句向数据库中插入数据,下面是一个简单的示例:

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

public class InsertData {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DriverManager.getConnection("jdbc:sqlite:test.db");
            String sql = "INSERT INTO users (name) VALUES (?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "Alice");
            pstmt.executeUpdate();
            System.out.println("数据插入成功");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}

步骤五:查询数据

最后,我们可以使用SQL语句查询数据库中的数据,下面是一个示例:

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

public class QueryData {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = DriverManager.getConnection("jdbc:sqlite:test.db");
            stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");
            while (rs.next()) {
                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}

状态图

下面是一个使用mermaid语法表示的状态图:

stateDiagram
    [*] --> Disconnected
    Disconnected --> Connected
    Connected --> Disconnected

甘特图

下面是一个使用mermaid语法表示的甘特图: