SQLite和Java:对SQLite表进行CRUD操作

本文将介绍怎样利用 Java 使用 SQLite JDBC 驱动对 t_user 表进行 CRUD 操作。

下面将对 SQLite 的 t_user 表进行 CRUD 操作,数据表结构如下图:

SQLite和Java:对SQLite表进行CRUD操作

Java 代码如下:

package com.hxstrive.sqlite;

import java.sql.*;
import java.util.Date;

/**
 * 对 SQLite 的 T_USER 表进行 CRUD 操作
 * @author hxstrive.com 2022/9/29
 */
public class SqliteCRUD {

    public static void main(String[] args) throws Exception {
        new SqliteCRUD();
    }

    public SqliteCRUD() throws Exception {
        Connection connection = null;
        Statement statement = null;

        try {
            // 打开数据库
            Class.forName("org.sqlite.JDBC");
            connection = DriverManager.getConnection("jdbc:sqlite:sqlite_studio.db");
            System.out.println("Opened database successfully");

            // 插入用户信息
            addUser(connection, 1000, "张三", 28, "男", new Date());
            // 修改用户信息
            updateUser(connection, 1000, "张三-update", 30);
            // 查询用户信息
            getUser(connection, 1000);
            // 删除用户信息
            deleteUser(connection, 1000);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(null != connection) {
                connection.close();
            }
        }
    }

    /**
     * 添加用户
     * @param connection
     * @param name 用户名称
     * @param age 年龄
     * @param sex 性别
     * @param birthday 生日
     */
    private void addUser(Connection connection, int id, String name, int age,
            String sex, Date birthday) throws Exception {
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(
                    "insert into t_user(id, name,age,sex,birthday) values (?,?,?,?,?)");
            statement.setInt(1, id);
            statement.setString(2, name);
            statement.setInt(3, age);
            statement.setString(4, sex);
            statement.setDate(5, new java.sql.Date(birthday.getTime()));
            statement.execute();
        } finally {
            if(null != statement) {
                statement.close();
            }
        }
    }

    /**
     * 根据用户ID更新用户信息
     * @param id 用户ID
     * @param newName 用户新名称
     */
    private void updateUser(Connection connection, int id, String newName,
            int newAge) throws Exception {
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(
                    "update t_user set name=?,age=? where id=?");
            statement.setString(1, newName);
            statement.setInt(2, newAge);
            statement.setInt(3, id);
            statement.executeUpdate();
        } finally {
            if(null != statement) {
                statement.close();
            }
        }
    }

    /**
     * 根据用户ID获取用户信息
     * @param id 用户ID
     */
    private void getUser(Connection connection, int id) throws Exception {
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        try {
            statement = connection.prepareStatement(
                    "select * from t_user where id=?");
            statement.setInt(1, id);
            resultSet = statement.executeQuery();
            if(resultSet.next()) {
                int vid = resultSet.getInt("id");
                String vname = resultSet.getString("name");
                int vage = resultSet.getInt("age");
                String vsex = resultSet.getString("sex");
                java.sql.Date vbirthday = resultSet.getDate("birthday");
                System.out.printf("id=%d, name=%s, age=%d, sex=%s, birthday=%s\n",
                        vid, vname, vage, vsex, vbirthday.toString());
            }
        } finally {
            if(null != resultSet) {
                resultSet.close();
            }
            if(null != statement) {
                statement.close();
            }
        }
    }

    /**
     * 根据用户ID删除用户信息
     * @param id 用户ID
     */
    private void deleteUser(Connection connection, int id) throws Exception {
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(
                    "delete from t_user where id=?");
            statement.setInt(1, id);
            statement.executeUpdate();
        } finally {
            if(null != statement) {
                statement.close();
            }
        }
    }

}

运行示例,输出如下:

Opened database successfully
id=1000, name=张三-update, age=30, sex=男, birthday=2022-09-29
生活总会给你答案的,但不会马上把一切都告诉你。只要你肯等一等,生活的美好,总在你不经意的时候,盛装莅临。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号