JAVA |日常开发中连接Sqlite数据库详解
- 前言
- 一、SQLite 数据库概述
- 1.1 定义与特点
- 1.2 适用场景
- 二、Java 连接 SQLite 数据库的准备工作
- 2.1 添加 SQLite JDBC 驱动依赖
- 2.2 了解 JDBC 基础概念
- 三、建立数据库连接
- 3.1 代码示例
- 3.2 步骤解析
- 四、执行 SQL 语句
- 4.1 创建表
- 4.2 插入数据
- 4.3 查询数据
- 五、异常处理与资源管理
- 5.1 异常处理
- 5.2 资源管理
- 结束语
- 优质源码分享
JAVA |日常开发中连接Sqlite数据库详解
,在日常的Java开发中,连接和操作SQLite数据库是一个常见的任务。SQLite是一个轻量级的、嵌入式的、关系型数据库管理系统,它不需要外部的数据库服务器,并且整个数据库(包括定义、表、索引和数据)都保存在一个单独的文件中。这使得SQLite非常适合用于嵌入式系统、移动设备、桌面应用程序以及作为开发过程中的临时数据存储。本文将详细介绍如何在Java中连接SQLite数据库,包括所需的库、连接步骤、执行SQL语句以及处理结果集。
前言
在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。
一、SQLite 数据库概述
1.1 定义与特点
SQLite 是一个轻量级的嵌入式关系型数据库管理系统。它的特点是占用资源少、速度快、零配置(不需要单独的服务器进程或复杂的安装配置),并且是基于文件的数据库,整个数据库存储在一个文件中,非常适合在移动设备、桌面应用以及小型的 Web 应用等场景中使用。
1.2 适用场景
移动应用开发:在安卓和 iOS 应用中,用于存储用户数据、应用配置等信息。例如,存储用户的偏好设置、本地缓存数据等。
小型桌面应用:如简单的记账软件、待办事项管理工具等,这些应用的数据量不大,对数据库功能要求相对简单,SQLite 能够很好地满足需求。
嵌入式系统:在一些资源受限的嵌入式设备中,SQLite 可以提供基本的数据存储和管理功能。
二、Java 连接 SQLite 数据库的准备工作
2.1 添加 SQLite JDBC 驱动依赖
如果使用 Maven 构建项目,需要在pom.xml文件中添加以下依赖:
<dependency><groupId>org.xerial</groupId><artifactId>sqlite - jdbc</artifactId><version>3.36.0.3</version>
</dependency>
这会将 SQLite 的 JDBC 驱动添加到项目中,使得 Java 程序能够通过 JDBC(Java Database Connectivity)接口与 SQLite 数据库进行通信。
2.2 了解 JDBC 基础概念
JDBC 驱动: 是 Java 程序与数据库之间的桥梁,它实现了 JDBC 接口,负责将 Java 的数据库操作请求转换为数据库能够理解的指令,并将数据库的响应返回给 Java 程序。
连接字符串(Connection String): 用于指定要连接的数据库的位置和其他相关参数。对于 SQLite 数据库,连接字符串通常是jdbc:sqlite:database.db的形式,其中database.db是数据库文件的名称。如果数据库文件在特定的目录下,需要提供完整的路径。
三、建立数据库连接
3.1 代码示例
以下是一个简单的 Java 代码片段,用于建立与 SQLite 数据库的连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLiteConnectionExample {public static void main(String[] args) {try {// 加载SQLite JDBC驱动Class.forName("org.sqlite.JDBC");// 建立连接,这里假设数据库文件名为test.db,位于当前目录下Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");System.out.println("成功连接到SQLite数据库");// 关闭连接connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
3.2 步骤解析
加载驱动: Class.forName(“org.sqlite.JDBC”)语句用于加载 SQLite 的 JDBC 驱动。在较新的 JDBC 版本中,这一步骤可能不是必需的,但为了兼容性,通常还是会包含这一步。
建立连接: 通过DriverManager.getConnection(“jdbc:sqlite:test.db”)方法建立与 SQLite 数据库的连接。如果数据库文件不存在,SQLite 会自动创建一个新的数据库文件。
关闭连接: 在完成数据库操作后,使用connection.close()关闭连接,释放资源。
四、执行 SQL 语句
4.1 创建表
示例代码如下,用于在 SQLite 数据库中创建一个简单的users表:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateTableExample {public static void main(String[] args) {try {Class.forName("org.sqlite.JDBC");Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");Statement statement = connection.createStatement();String sql = "CREATE TABLE IF NOT EXISTS users (" +"id INTEGER PRIMARY KEY AUTOINCREMENT," +"name TEXT," +"age INTEGER)";statement.executeUpdate(sql);System.out.println("表创建成功");statement.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
在这里,通过connection.createStatement()创建一个Statement对象,用于执行 SQL 语句。executeUpdate方法用于执行创建表的 SQL 语句,因为这是一个会修改数据库结构的操作(如创建、修改、删除表等)。
4.2 插入数据
以下是向users表中插入数据的示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertDataExample {public static void main(String[] args) {try {Class.forName("org.sqlite.JDBC");Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");Statement statement = connection.createStatement();String sql = "INSERT INTO users (name, age) VALUES ('John', 30)";statement.executeUpdate(sql);System.out.println("数据插入成功");statement.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
同样使用executeUpdate方法执行插入数据的 SQL 语句,将一个名为John,年龄为 30 的用户信息插入到users表中。
4.3 查询数据
示例代码用于从users表中查询数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class QueryDataExample {public static void main(String[] args) {try {Class.forName("org.sqlite.JDBC");Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");Statement statement = connection.createStatement();String sql = "SELECT * FROM users";ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");int age = resultSet.getInt("age");System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);}resultSet.close();statement.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
这里通过executeQuery方法执行查询语句,返回一个ResultSet对象,用于存储查询结果。通过while (resultSet.next())循环遍历ResultSet,并使用getInt、getString等方法获取每一行的数据。
五、异常处理与资源管理
5.1 异常处理
在与数据库交互的过程中,可能会出现多种异常,如SQLException(数据库操作异常)、ClassNotFoundException(找不到 JDBC 驱动类)等。在代码中,应该使用try - catch块来捕获这些异常,并进行适当的处理,例如打印错误信息或者进行一些回滚操作。
5.2 资源管理
数据库连接、Statement对象和ResultSet对象等都是有限的资源,在使用完毕后应该及时关闭,以释放资源。可以使用try - with - resources语句(从 Java 7 开始支持)来自动关闭这些资源。例如:
try (Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql)) {// 数据库操作代码
} catch (SQLException e) {e.printStackTrace();
}
在try语句块结束后,connection、statement和resultSet对象会自动关闭,即使在操作过程中出现异常。
结束语
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
优质源码分享
-
【百篇源码模板】html5各行各业官网模板源码下载
-
【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)
-
【VUE系列】VUE3实现个人网站模板源码
-
【HTML源码】HTML5小游戏源码
-
【C#实战案例】C# Winform贪吃蛇小游戏源码
💞 关注博主 带你实现畅游前后端
🏰 大屏可视化 带你体验酷炫大屏
💯 神秘个人简介 带你体验不一样得介绍
🎀 酷炫邀请函 带你体验高大上得邀请
① 🉑提供云服务部署(有自己的阿里云);
② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
如🈶合作请联系我,期待您的联系。
注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌
原文地址:https://blog.csdn.net/weixin_43151418/article/details/144188937(防止抄袭,原文地址不可删除)