问题标签 [sqlitejdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
359 浏览

java - SQLite 内存数据库间歇性地遇到 SQLITE_LOCKED_SHAREDCACHE

我正在使用 mybatis 3.4.6 和 org.xerial:sqlite-jdbc 3.28.0。下面是我使用启用共享模式的内存数据库的配置

db.url根据这个测试类是正确

我设法使用以下 mybatis 配置设置了正确的事务隔离级别,尽管根据我也报告的这个问题,属性 read_uncommitted 有一个错字

这一行配置

设置正确的PRAGMA read_uncommitted值的技巧

我很确定,因为我调试了初始化连接的底层代码并检查值是否已正确设置

但是通过上述设置,我的程序在读取时仍然会间歇性地遇到 SQLITE_LOCKED_SHAREDCACHE,根据下面屏幕截图红色矩形突出显示的描述,我认为它不应该发生。我想知道原因以及如何解决它,虽然这个错误的发生概率很低。

任何想法,将不胜感激!!

调试配置如下

在此处输入图像描述

附件:

例外如下

0 投票
2 回答
52 浏览

sql - 将 UNIX 格式的特定日期插入 TABLE

我有一个代表帖子的表格(在您喜欢的任何社交媒体上),该表格包含磁贴、描述和发布时间。

在此示例中,如果帖子有NULL日期,我必须自动将其修改为特定日期,即 2019 年 4 月 27 日 21:11:12 UTC(UNIX 格式)。问题是我该怎么做?我试图找到一种方法并在互联网上阅读了很多东西。

1556399472我还看到了一个 Unix Time Stamp - Epoch Converter 并看到那个日期的值是工作:<)

这里的另一个例子是为了确保清楚:

我必须把它转换成这样的东西

注意:我在 IntelliJ IDE 中使用 SQL。

0 投票
2 回答
625 浏览

sql - 如何在 SQLite 中将 int(UNIX 时间戳)转换为 datetime?

我必须在 SQL 中创建一个表(我正在使用 IntelliJ 和 Java),并且该表必须遵守以下限制。

该表将包含以下列:

  • 标题 - 需要能够存储字母、数字和特殊字符
  • news_description - 需要能够存储时事通讯的文本
  • publish_date - 需要能够存储一个整数(在 UNIX 系统中)

除此之外,我们还有以下限制:

  • 仅当该表不存在时才会创建该表

  • 主键将是标题

  • 2 个时事通讯不能有相同的描述

  • news_description 不能为空

  • 如果未指定发布日期,我需要使用 UTC 将其设置为 2019 年 4 月 27 日 21:11:12,并且日期必须为 UNIX 格式

所以我的问题是我如何在创建表格时尊重我上面所说的所有限制

注意:这是我的作业,除了表格之外我不能添加任何东西,所以我需要遵守表格创建过程中的所有限制。

0 投票
5 回答
91 浏览

sql - 进行查询以选择包含特定单词的新闻

我需要编写一个查询来选择所有news包含“苹果”或“西瓜”(或两者)在他们title或他们中的单词newsletter_description,我不太确定我该怎么做。(不区分大小写,也可以是“AppLe”或“WaterMelon”)

0 投票
2 回答
148 浏览

java - Java:填写 PreparedStatement 的 SQLite 参数会导致错误

我正在尝试使用SQLite-JDBC从 Java 中的 SQL 数据库读取数据,但是在向 a 填充参数PreparedStatement时出现错误。代码的重要部分和错误如下。

第 28 行,即错误所在的行,在这个缩短的代码版本中就是这样说的p.setString(1, scanner.nextLine());

提前谢谢了。

0 投票
1 回答
43 浏览

java - 无法使用文件选择器访问 sqlite.db 文件(Java Swing 项目)

我无法从远程路径访问 .db 文件,例如

项目代码(不太复杂的简单连接)

当我尝试运行可执行 jar 时,它工作正常,当我尝试从 intellj 项目中使用时,这是我尝试运行可执行 jar 时遇到的错误

fnovel.db 文件是使用文件选择器选择的,我从中使用绝对路径。我不能包含 .db 文件,因为它的数据是从 Nox 模拟器中提取的。让我知道是否可以使用 PHP 完成相同的项目而没有任何错误我尝试使用 java 因为我无法在我想使用该程序时手动启动/停止 xampp

当我Class.forName("org.sqlite.JDBC");在连接之前添加时java.lang.ClassNotFoundException: org.sqlite.JDBC出现错误

0 投票
0 回答
351 浏览

java - 如何使用 Mybatis 和 SQLite 创建表?

我正在尝试使用 Mybatis 和 SQLite 创建一个新数据库和新表。我从之前的答案(123)中发现 Mybatis 确实支持使用 CREATE 和 ALTER 语句,方法是在 Mybatis 映射器语法中将它们标记为“UPDATE”。但是,这些问题/答案使用的是 Mapper XML,而我使用的是注释,也没有使用 SQLite。

一旦你打开一个新的连接,SQLite 就会创建一个新的数据库,所以数据库之前是否存在并不重要。创建一个大小为零字节的新数据库,这很好(SQLite 将 0 字节文件视为空数据库)。但是在创建表之后,我希望数据库大小不为零,因为它存储了该表的表结构。在运行我认为应该创建表的代码后(我正在根据这个答案检查我的语法),数据库大小仍然读取为 0 字节,这对我说实际上并没有创建表。我究竟做错了什么?

我的 Java 代码来测试这个场景:

我的映射器:

运行此代码后检查文件:

0 投票
1 回答
47 浏览

java - SQLite 不返回表中的所有记录 - SQLite-JDB

我有一个非常大的表(1074 条记录),我正在尝试使用以下查询访问它:

虽然这有效,但它只会返回一定数量的这些记录。我想得到所有这些。

我该怎么做呢?

谢谢

0 投票
1 回答
40 浏览

java - 如何读取将作为 MultipartFile 参数传递的 SQLite 文件?(在 java/kotlin 中)

我必须编写 REST API 来解析 SQLite 文件并将其数据解析并保存到服务器的 MySQL 数据库中。

SQLite 文件将作为 .zip 文件 ( MultipartFile) 传递,因此我必须将其解压缩,然后将解压缩的文件作为 DTO 读取。

代码如下..

我发现有sqlite-jdbc库(https://github.com/xerial/sqlite-jdbc),但它似乎不适用于我的情况。我想我需要 mmap I/O,但是有没有 JAVA 库呢?

谢谢!

0 投票
0 回答
44 浏览

java - Java应用程序无法在ubuntu中加载sqlite的本机库

我有一个 java 应用程序,它尝试连接到 sqlite3 db。但它无法连接到 sqlite3 并引发以下错误。该应用程序部署在 ubuntu 服务器上。Sqlite3 是在服务器上手动安装的。

Java 环境版本如下。openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~18.04-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) Ubuntu version is 20.04 lts. sqlite3 版本是 3.11.0 2016-02-15 17:29:24 sqlite-jdbc 版本:'3.34.0'

错误是

它试图找到的目录和文件很好地存在于服务器中。我确保将目录的所有权限授予运行应用程序的用户。

请注意,相同的 java 应用程序在 ubuntu 版本为 16.04 lts 的另一台服务器上运行良好。这台服务器上安装的 java 版本是 openjdk 版本“1.8.0_292” OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~16.04.1-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed模式)。