Java中使用Sqlite数据库

本文提供了一个使用Java操作SQLite数据库的示例代码,包括创建表、插入数据、提交事务和查询所有表等内容。介绍了两种集成方式:嵌入式和本地,并详细展示了嵌入式的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqlite数据库第三方java扩展包下载地址:[url]http://www.zentus.com/sqlitejdbc/[/url]
Java中使用Sqlite数据库有两种方式:
1.nested(嵌入式的)
2.native(本地的)

区别在于:
nested 不需要额外的dll文件,但是速度慢。
native需要一个额外的dll文件,速度很快。

1.nested(嵌入式的),sqlitejdbc-v056.jar需要加到classpath里

package com.esri;

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

public class TestSqlite {

/**
* @param args
*/
public static void main(String[] args) {

// System.setProperty("java.library.path", ".");

try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager
.getConnection("jdbc:sqlite:c:/test3.db");
// 建立事务机制,禁止自动提交,设置回滚点
conn.setAutoCommit(false);

Statement stat = conn.createStatement();
stat.executeUpdate("create table people (name, occupation);");
stat.executeUpdate("insert into people values ('Gandhi', 'politics');");
stat.executeUpdate("insert into people values ('Turing', 'computers');");
stat.executeUpdate("insert into people values ('Wittgenstein', 'smartypants');");
conn.commit();

ResultSet rs = stat.executeQuery("select * from people;");
while (rs.next()) {
System.out.println("name = " + rs.getString("name"));
System.out
.println("occupation = " + rs.getString("occupation"));
}

rs.close();
conn.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}



[b]Sqlite中如何查询数据库中存在的所有表?[/b]

SELECT name FROM sqlite_master
WHERE type='table'
ORDER BY name;
SQLite 作为一个开源的嵌入式数据库产品,具有系统开销小,检索效率的特性,适用于手机、PDA、机顶盒设备等电器,并且作为嵌入式数据库在可下载的消费类应用程序中运行的很好。这篇文章介绍嵌入式数据库产品SQLite 的技术特点,并着重讨论研究与Java语言之间的接口,并以实例说明如何使用JAVA 开发基于SQLite 的应用程序。 正文: 通常我们采用各种数据库产品来实现对数据的存储、检索等功能,例如,Oracle,SQL Server, MySQL 等等。这些产品除提供基本的查询,删除,添加等功能外,也提供了很多级特性,如触发器,存储过程,数据备份恢复,全文检索功能等。但实际上,很多的应用,仅仅利用到了这些数据库产品的基本特性而已。而且在一些小型应用上,或者某些特殊场合的应用,比如桌面程序,这些数据库产品就明显有一些臃肿。在这些情况下,嵌入式数据库的优势就特别明显了。 嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API 去实现对数据的存取操作。更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式, 而后者是引擎响应式。嵌入式数据库的一个很重要的特点是它们的体积非常小,编译后的产品也过几十K。这但对桌面程序的数据存储方案是一个很好的选择,也使得它们可以应用到一些移动设备上。同时,很多嵌入式数据库在性能上也优于其它数据库,所以在性能的应用上也常见嵌入式数据库的身影。 下面介绍的是开放源代码的嵌入式数据库SQLite。同时侧重研究如何应用Java 连接SQLite数据库,并开发基于SQLite 的应用程序。 ......
<think>好的,我现在要帮用户解决在Java Spring Boot项目中通过application.yml文件配置SQLite数据库的问题。首先,我需要回忆一下Spring Boot的数据库配置相关知识。记得在Spring Boot中,通常是在application.yml或者application.properties里配置数据源,比如数据库的URL、驱动类、用户名和密码等。 用户提到的是SQLite,这是一个轻量级的数据库像MySQL或者PostgreSQL那么常见,所以配置上可能有些同。我需要确认SQLiteJDBC驱动是否正确,以及URL的格式。根据引用[1]中的例子,URL可能是jdbc:sqlite:db/main.db,驱动类为org.sqlite.JDBC。这说明用户需要在pom.xml中添加SQLite JDBC依赖,比如SQLite JDBC库。 接下来,我需要整理配置步骤。首先,项目创建部分,用户可能已经有一个Spring Boot项目,所以重点在依赖和配置。然后,在pom.xml中添加SQLite JDBC依赖,例如: ```xml <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.36.0.3</version> </dependency> ``` 之后,在application.yml中配置数据源,参考引用[1]中的例子,设置url、driver-class-name。可能需要用户名和密码,因为SQLite通常需要认证。另外,可能需要注意文件路径的问题,比如是相对路径还是绝对路径,或者使用内存数据库的话,URL可能同,比如jdbc:sqlite::memory:。 还需要考虑是否要配置JPA或者MyBatis等其他持久层框架,但用户的问题主要是配置数据源,所以暂时需要深入这部分。过根据引用[4],用户可能后续需要生成代码,但当前问题只关注配置。 另外,用户提供的引用[3]里有MySQL的配置示例,可以作为对比,帮助用户理解数据库的配置差异。比如,驱动类名称和URL的结构同。 可能遇到的问题包括驱动类未正确加载,或者路径问题导致数据库文件找到。需要提醒用户检查依赖是否正确,以及数据库文件的存放位置是否符合配置中的路径。比如,如果配置的是jdbc:sqlite:db/main.db,那么项目根目录下需要有db文件夹,并且main.db存在,或者自动创建。 最后,生成相关问题的时候,需要考虑用户可能进一步的问题,比如如何集成MyBatis、进行测试或者处理多环境配置。确保问题与主题相关,并引导用户深入了解更多内容。</think>在Java Spring Boot项目中配置SQLite数据库需通过`application.yml`文件定义数据源参数,以下是具体步骤: --- ### 1. 添加SQLite依赖 在`pom.xml`中引入SQLite JDBC驱动: ```xml <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.42.0.0</version> </dependency> ``` --- ### 2. 配置application.yml ```yaml spring: datasource: url: jdbc:sqlite:db/main.db # 数据库文件路径(相对项目根目录) driver-class-name: org.sqlite.JDBC username: # SQLite通常无需用户名/密码 password: ``` - **路径说明**: - 若使用内存数据库:`url: jdbc:sqlite::memory:` - 绝对路径示例:`url: jdbc:sqlite:/opt/data/app.db`[^1] - **关键参数**:`driver-class-name`必须指定为`org.sqlite.JDBC`[^2] --- ### 3. 验证配置 通过简单查询测试数据库连接: ```java @SpringBootTest public class SqliteTest { @Autowired private DataSource dataSource; @Test void testConnection() throws SQLException { try (Connection conn = dataSource.getConnection()) { assertTrue(conn.isValid(5)); } } } ``` --- ### 常见问题 1. **文件路径错误**:确保`db/main.db`目录存在且可写 2. **依赖冲突**:检查是否引入其他数据库驱动(如H2)导致冲突 3. **事务管理**:SQLite默认关闭自动提交,需手动配置事务[^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值