如何通过 Java 在 SQLite 中强制执行外键约束?

2023-12-27

默认情况下,SQLite 似乎不强制执行外键。我在用着sqlitejdbc-v056.jar http://www.zentus.com/sqlitejdbc/我读过使用PRAGMA foreign_keys = ON;将打开外键约束,并且需要在每个连接的基础上打开。

我的问题是:我需要执行哪些Java语句来打开这个命令?我试过了:

connection.createStatement().execute("PRAGMA foreign_keys = ON");

and

Properties properties = new Properties();
properties.setProperty("PRAGMA foreign_keys", "ON");
connection = DriverManager.getConnection("jdbc:sqlite:test.db", properties);

and

connection = DriverManager.getConnection("jdbc:sqlite:test.db;foreign keys=true;");

但这些都不起作用。我在这里缺少什么吗?

我见过这个答案 https://stackoverflow.com/questions/4254371/enabling-foreign-key-constraints-in-sqlite-through-c-sharp我想做同样的事情,只使用 JDBC。


代码如下:

DriverManager.getConnection("jdbc:sqlite:some.db;foreign keys=true;")

不起作用。 你必须创建org.sqlite.SQLiteConfig并在从 DriverManager 调用 getConnection 时将其设置为属性。

public static final String DB_URL = "jdbc:sqlite:database.db";  
public static final String DRIVER = "org.sqlite.JDBC";  

public static Connection getConnection() throws ClassNotFoundException {  
    Class.forName(DRIVER);  
    Connection connection = null;  
    try {  
        SQLiteConfig config = new SQLiteConfig();  
        config.enforceForeignKeys(true);  
        connection = DriverManager.getConnection(DB_URL,config.toProperties());  
    } catch (SQLException ex) {}  
    return connection;  
}

这段代码取自this http://code-know-how.blogspot.ru/2011/10/how-to-enable-foreign-keys-in-sqlite3.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Java 在 SQLite 中强制执行外键约束? 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • iphone sqlite 静态链接?

    有人静态链接 sqlite 而不是使用动态链接 吗 我遇到的问题是 越狱手机的用户没有与普通 iPhone 所采用的 sqlite 版本相同的版本 因此导致崩溃 我假设在我的应用程序中静态链接已知版本的 sqlite 就是答案 我需要全文支
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 在 XSL 翻译中更改 XML 文件的命名空间

    所以我有一个输入文件 它在默认命名空间中使用我公司的命名空间 xmlns companyURL 但我希望我的输出文件使用默认命名空间以外的其他内容 xmlns cmp companyURL 所以我使用以下方法构建我的文件cmp命名空间 但我
  • numpy 数组到文件,np.savetxt

    当我使用 np savetxt file txt arr1 arr2 arr3 时 将多个 numpy 数组保存到文件的最佳方法是什么 数组按列保存 而不是按行保存 因此很难导入到 Excel 中 如何以更标准的方式保存数组 Thanks
  • 如何屏蔽文本中的信用卡号掩码?

    我的网站上有一个表格 我的客户用此表格向我发送消息 有时他们会在消息上写下信用卡号码 所以这非常关键 我想屏蔽这些信用卡号码 但卡号当然不会定期出现 示例1 1111222233334444 示例2 4444 3333 2222 1111
  • 更改传单中标记的大小

    我在传单的地图上有一个标记 var centerMarker L marker centerPoint title unselected bindLabel schools i 0 centerMarker on click selectM
  • 为什么应该在 Android 中使用自定义内容提供程序?

    使用自定义内容提供商有哪些优势 为什么这样的内容提供者优于包装 SQL 查询的普通类 内容提供程序可以从其他进程中使用 并且是 Android 上的某些机制 例如全局搜索 所需要的 还有一些可用的类可以帮助您处理内容提供 者 从而节省您管理
  • .NET 6:如何在控制台应用程序启动中使用方法重载?

    NET 6 在控制台应用程序 Startup 类中提供了样板删除功能 我尝试运行这个简单的测试代码 Console WriteLine Hello World static void Test int a int b static void
  • 对数时间并行减少

    Given n部分和 可以在 log2 并行步骤中对所有部分和进行求和 例如 假设有八个线程 有八个部分和 s0 s1 s2 s3 s4 s5 s6 s7 这可以减少log2 8 3像这样的连续步骤 thread0 thread1 thre
  • 我可以让 html.HiddenFor / Html.Hidden 创建一个 id 还是应该手动创建它?

    我这样做 它创建了一个隐藏的输入 但没有id just name 我需要id 我可以让它创建一个id also atm 我这样做 一种更干净的方法是 但除此之外 你现有的方法就可以了 如果您确实想要一个简单的语法 您可以创建一个调用 Hid
  • 如何创建 python selenium 应用程序及其驱动程序?

    我刚刚开始使用 python 和爬行 我使用selenium和beautifulsoup来解析和抓取页面 我的问题是我是否必须用它制作一个应用程序或将其部署在某些iis服务器上 或我不知道的任何其他方式 比如它是如何工作的 我不知道即使确定
  • 如何实现 hashCode 和 equals 方法从 ArrayList 中删除重复项

    我正在从数据库模型 Income 获取数据 这就是它的样子 Table name Income public class Income extends Model Column name AmountDate public String a
  • Oracle SQL 约束 where 子句

    我在 oracle 上有一个包含以下列的 Tester 表 TesterID 测试者姓名 是默认值 应用程序ID TesterID 是主键 现在我希望只能有一个默认测试器 这意味着只有一个测试器可以在 ApplicationID 处具有计算
  • GDB 中的断点命名

    有没有办法在 GDB 中命名一个断点 以便在断点被击中时 GDB 给出一些名称而不是数字 IE 在方法 main 中命中断点 非常重要的断点 不 没有办法做到这一点 但您可以使用 命令 命令和打印命令 e g break main comm
  • 如何使用变量名调用java方法?

    假设我有 Method1 void Method2 void 有没有办法我可以选择其中一个带有变量的方法 String MyVar 2 MethodMyVar 使用反射 Method method WhateverYourClassIs c
  • 如何根据单个用户定义的文字自动添加文字定义?

    C 11 offers 用户定义的文字 http en wikipedia org wiki C 2B 2B11 User defined literals 我刚刚开始使用它们 这让我想知道是否可以自动添加所有SI 乘数 http en w
  • Keras + DataFrameMapper + make_pipeline,input_dim 困境

    我的数据看起来像这样 import pandas as pd from sklearn pandas import DataFrameMapper CategoricalImputer from sklearn preprocessing
  • 法罗双重调度

    有人可以解释一下 Pharo 4 0 中使用 Smalltalk 进行双重调度的过程吗 我是 Smalltalk 的新手 很难掌握这个概念 因为与 Smalltalk 相比 它在 Java 中的实现方式非常不同 如果有人能用一个例子来解释它
  • 组合 XPATH 轴(前同级和后同级)

    假设我有以下 UL ul li barry li li bob li li carl li li dave li li roger li li steve li ul 我需要获取鲍勃和罗杰之间的所有 LI 我可以抓住鲍勃之后的一切 ul l
  • 编写一个函数来删除对象(如果存在)

    我正在尝试编写一个函数来删除对象 如果存在 原因是我想摆脱日志消息错误 未找到对象 arg 我尝试了以下方法 ifrm lt function arg if exists as character substitute arg rm arg
  • 为什么 pytorch 中的正则化和临时代码不匹配?pytorch 中的正则化公式是什么?

    我一直在尝试对 PyTorch 中的二元分类模型进行 L2 正则化 但是当我匹配 PyTorch 的结果和临时代码时 它不匹配 火炬代码 class LogisticRegression nn Module def init self n
  • 如何通过 Java 在 SQLite 中强制执行外键约束?

    默认情况下 SQLite 似乎不强制执行外键 我在用着sqlitejdbc v056 jar http www zentus com sqlitejdbc 我读过使用PRAGMA foreign keys ON 将打开外键约束 并且需要在每