📜  Java SQLite示例(1)

📅  最后修改于: 2023-12-03 14:42:16.170000             🧑  作者: Mango

Java SQLite示例

介绍

Java SQLite示例演示了如何在Java中使用SQLite数据库。

SQLite是一种开放源代码的关系型数据库管理系统,它被设计用来嵌入其他应用程序中。SQLite是UDBMS的一种,全称为Ultra Small Database Management System。 SQLite与传统数据库不同,它并不采用SaaS的方式进行数据存储,而是实现了一个Zero-configuration、英文释义为“零配置”的、自给自足的、无需服务器和管理员的、接近零维护的嵌入式数据库。

Java是一种通用、类-based、并发、面向对象的编程语言,拥有许多不同于其他编程语言的特性。Java很适合用于开发面向服务器、手机、嵌入式设备和互联网的应用程序。

本示例将介绍如何在Java中使用SQLite数据库,演示如何创建、插入、查询和删除数据。

准备工作

在Java中使用SQLite需要引入SQLite驱动程序,可以在以下链接中下载:

http://www.zentus.com/sqlitejdbc

下载后,将sqlitejdbc-v056.jar文件复制到项目的Classpath中。

使用SQLite数据库
1.创建连接

在Java中使用SQLite需要创建一个Connection对象,表示与数据库的连接。可以使用以下代码创建连接:

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

public class SQLiteJDBC {

  public static void main(String[] args) {
    Connection connection = null;
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:test.db");
    } catch (ClassNotFoundException e) {
      System.err.println(e.getMessage());
    } catch (SQLException e) {
      System.err.println(e.getMessage());
    } finally {
      try {
        if (connection != null) {
          connection.close();
        }
      } catch (SQLException e) {
        System.err.println(e);
      }
    }
  }
}

此代码创建了一个名为test.db的数据库,并建立了一个连接。

2.创建表格

在Java中使用SQLite需要使用Statement对象执行SQL语句。可以使用以下代码创建一个表格:

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

public class SQLiteJDBC {

  public static void main(String[] args) {
    Connection connection = null;
    Statement statement = null;
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:test.db");
      statement = connection.createStatement();
      String sql = "CREATE TABLE COMPANY " +
                   "(ID INT PRIMARY KEY     NOT NULL," +
                   " NAME           TEXT    NOT NULL, " +
                   " AGE            INT     NOT NULL, " +
                   " ADDRESS        CHAR(50), " +
                   " SALARY         REAL)";
      statement.executeUpdate(sql);
      statement.close();
      connection.close();
    } catch (ClassNotFoundException e) {
      System.err.println(e.getMessage());
    } catch (SQLException e) {
      System.err.println(e.getMessage());
    } finally {
      try {
        if (statement != null) {
          statement.close();
        }
        if (connection != null) {
          connection.close();
        }
      } catch (SQLException e) {
        System.err.println(e);
      }
    }
  }
}

此代码创建了一个名为COMPANY的表格,并定义了五个字段。

3.插入数据

在Java中使用SQLite需要使用PreparedStatement对象执行SQL语句。可以使用以下代码向表格中插入数据:

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

public class SQLiteJDBC {

  public static void main(String[] args) {
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:test.db");
      String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                   "VALUES (?,?,?,?,?)";
      preparedStatement = connection.prepareStatement(sql);
      preparedStatement.setInt(1, 1);
      preparedStatement.setString(2, "Paul");
      preparedStatement.setInt(3, 32);
      preparedStatement.setString(4, "California");
      preparedStatement.setDouble(5, 20000.00);
      preparedStatement.executeUpdate();
      preparedStatement.close();
      connection.close();
    } catch (ClassNotFoundException e) {
      System.err.println(e.getMessage());
    } catch (SQLException e) {
      System.err.println(e.getMessage());
    } finally {
      try {
        if (preparedStatement != null) {
          preparedStatement.close();
        }
        if (connection != null) {
          connection.close();
        }
      } catch (SQLException e) {
        System.err.println(e);
      }
    }
  }
}

此代码向COMPANY表格中插入了一条数据。

4.查询数据

在Java中使用SQLite需要使用Statement对象执行SQL语句,同时使用ResultSet对象存储查询结果。可以使用以下代码查询数据:

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

public class SQLiteJDBC {

  public static void main(String[] args) {
    Connection connection = null;
    Statement statement = null;
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:test.db");
      statement = connection.createStatement();
      String sql = "SELECT * FROM COMPANY";
      ResultSet resultSet = statement.executeQuery(sql);
      while (resultSet.next()) {
        int id = resultSet.getInt("ID");
        String name = resultSet.getString("NAME");
        int age = resultSet.getInt("AGE");
        String address = resultSet.getString("ADDRESS");
        double salary = resultSet.getDouble("SALARY");
        System.out.println("ID:" + id);
        System.out.println("NAME:" + name);
        System.out.println("AGE:" + age);
        System.out.println("ADDRESS:" + address);
        System.out.println("SALARY:" + salary);
      }
      resultSet.close();
      statement.close();
      connection.close();
    } catch (ClassNotFoundException e) {
      System.err.println(e.getMessage());
    } catch (SQLException e) {
      System.err.println(e.getMessage());
    } finally {
      try {
        if (statement != null) {
          statement.close();
        }
        if (connection != null) {
          connection.close();
        }
      } catch (SQLException e) {
        System.err.println(e);
      }
    }
  }
}

此代码查询了COMPANY表格中的所有数据。

5.删除数据

在Java中使用SQLite需要使用PreparedStatement对象执行SQL语句。可以使用以下代码删除数据:

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

public class SQLiteJDBC {

  public static void main(String[] args) {
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    try {
      Class.forName("org.sqlite.JDBC");
      connection = DriverManager.getConnection("jdbc:sqlite:test.db");
      String sql = "DELETE FROM COMPANY WHERE ID=?";
      preparedStatement = connection.prepareStatement(sql);
      preparedStatement.setInt(1, 1);
      preparedStatement.executeUpdate();
      preparedStatement.close();
      connection.close();
    } catch (ClassNotFoundException e) {
      System.err.println(e.getMessage());
    } catch (SQLException e) {
      System.err.println(e.getMessage());
    } finally {
      try {
        if (preparedStatement != null) {
          preparedStatement.close();
        }
        if (connection != null) {
          connection.close();
        }
      } catch (SQLException e) {
        System.err.println(e);
      }
    }
  }
}

此代码删除了COMPANY表格中ID为1的数据。

总结

本示例演示了如何在Java中使用SQLite数据库,包括创建连接、创建表格、插入数据、查询数据和删除数据。SQLite是一种功能强大、小巧、可靠的数据库,适用于许多类型的应用程序。