[NSManagedObjectID] } } 需要注意如下事项: propertiesToUpdate 中,如属性名称拼写错误将导致程序崩溃 propertiesToUpdate 中,如更新值类型错误将导致程序崩溃...下文中会详细说明 将变化合并到视图上下文 由于批量操作是直接在持久化存储上完成的,因此必须通过某种方式将变化后的数据合并到视图上下文中,才能将变化在 UI 上体现出来。...( 本例中是 ) 上下文向持久化存储协调器发起填充请求 持久化存储协调器向持久化存储请求与当前对象关联的数据 持久化存储在它的行缓存中查找数据,并返回( 在本例中,数据已经被载入到行缓存中。...假如在其他情况下,数据没在缓存中,持久化存储会通过 SQL 语句从 SQLite 中获取到对应的数据 ) 持久化存储协调器将从持久化存储中获取的数据转交给上下文 上下文用获得到的数据填充惰值状态的 item...假设,应用程序需要定期从服务器上下载一个巨大的 JSON 文件,并将其中的数据保存到数据库中。
例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?值得庆幸的是,已经有人帮我们整理出一份关于 DB2 的错误代码大全啦,以后再遇到数据库报错,直接拎出看看,岂不爽哉?...该语句可能在另外的RDBMS上有效,也有可能在其他的上下文中有效(例如,VALUES只能在触发器中出现) -144 58003 指定的段号无效 -147 42809 某一源函数不能更改。...每个表只允许有一个ROWID列 -390 42887 在上下文中指定的函数无效 -392 42855 自从前一次FETCH以来,指定游标的SQLDA已被不恰当的改变 -396 38505 在最后的访问过程中...53004 DSNDB07是隐含的工作文件数据库 -746 57053 在特定的触发器、存储过程或函数中的SQL语句违反嵌套SQL限制 -747 57054 指定的表是不可用的除非为LOB数据列建立起必须的辅助表...在 HADR 数据库下不支持的操作(如备库可能不支持写操作) -2001 53089 为储存过程指定的宿主变量参数的个数不等于预期的参数个数 -20003 560A7 不能为GRECP中的表空间或索引指定
具有约束性定义标准 支持自定义 SQL、存储过程以及高级映射 持久层框架 整合型框架/设计型框架 简介 1、支持定制化SQL、存储过程以及高级映射的优秀的持久层框架 2、优点 避免了几乎有所的JDBC代码...(Java对象)映射成数据库中的记录 5、与现有持久层框架的对比 JDBC 开发效率低:加载驱动 > 创建连接 > 创建预编译对象 > 通配符赋值 > 执行SQL语句 > 处理结果 执行效率低:使用过程需要解析...-- 如果在属性名中使用了 ":" 字符(如:db:password),或者在 SQL 映射中使用了 OGNL 表达式的三元运算符(如:${tableName != null ?...提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。...如果生成列不止一个,可以用逗号分隔多个属性名称。 keyColumn 设置生成键值在表中的列名,在某些数据库(像 PostgreSQL)中,当主键列不是表中的第一列的时候,是必须设置的。
1 前言 作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?...该语句可能在另外的RDBMS上有效,也有可能在其他的上下文中有效(例如,VALUES只能在触发器中出现) -144 58003 指定的段号无效 -147 42809 某一源函数不能更改。...每个表只允许有一个ROWID列 -390 42887 在上下文中指定的函数无效 -392 42855 自从前一次FETCH以来,指定游标的SQLDA已被不恰当的改变 -396 38505 在最后的访问过程中...53004 DSNDB07是隐含的工作文件数据库 -746 57053 在特定的触发器、存储过程或函数中的SQL语句违反嵌套SQL限制 -747 57054 指定的表是不可用的除非为LOB数据列建立起必须的辅助表...在 HADR 数据库下不支持的操作(如备库可能不支持写操作) -2001 53089 为储存过程指定的宿主变量参数的个数不等于预期的参数个数 -20003 560A7 不能为GRECP中的表空间或索引指定
内容 JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。...JPA提供的技术: ORM映射元数据:JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API:定义规范,以操作实体对象...实体生命周期 New,新创建的实体对象,没有主键(identity)值 Managed,对象处于Persistence Context(持久化上下文)中,被EntityManager管理 Detached...ID生成策略 ID对应数据库表的主键,是保证唯一性的重要属性。...、MySQL、DB2、Derby等) GenerationType.SEQUENCE,使用数据库的序列号,需要数据库的支持(如Oracle) GenerationType.TABLE,使用指定的数据库表记录
-- property标签:用来非主键属性映射. name :类中属性名 column :表中的字段名 --> <property name="name"column="name"length="20"...(可以省略的.)默认使用类名. * catalog :数据库名 标签 :用来将表中主键与类中属性建立映射. * name :类中的属性名 * column :表中的字段名(可以省略.) * length...标签 :用来将表中普通的字段与类中属性进行映射. * name :类中的属性名 * column :表中的字段名(可以省略.) * length :表中字段的长度. * type :...: 1.8.1 什么是持久化类: Hibernate :冬眠.将对象持久化. * 持久化类:一个Java类,这个Java类与数据库的表建立了映射关系.这个类就称为是持久化类. * 持久化类 = JavaBean...通过标识属性区分. 4.属性尽量使用包装类型 :使用包装类使用null作为默认值. 5.持久化类不要使用final修饰 :设置为final.hibernate的延迟加载就会失效.不能产生代理对象. 1.8.3
后续艿艿写一篇~ DataGrip 版是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL...完成可以识别表格结构、外键,甚至是您正在编辑的代码中创建的数据库对象。 ? 即时分析和快速修复 DataGrip会检测代码中可能存在的错误,并建议动态修复它们的最佳选项。...要打开此文件,请转到“ 帮助”| 显示SQL日志。 ? ? 新的SQL格式化程序 感谢您与我们分享您对SQL样式的想法!我们希望现在DataGrip能够容纳更多不同的代码样式。...现在,它们中的任何一个都可以专门用于每个数据源。为此,请转到数据源属性的“ 选项”选项卡: ? 运行存储过程 从过程的上下文菜单中选择“执行”。将生成SQL代码。输入所需参数的值,然后单击“确定”。...要查看它,请在调用说明计划后单击工具栏上的“ 显示可视化”按钮: ? SQL编辑 上下文信息在编辑包中的大型过程时,有时在其上下文中刷新内存是有用的,即现在正在编辑的特定过程或包。
DataGrip 版是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL...完成可以识别表格结构、外键,甚至是您正在编辑的代码中创建的数据库对象。 ? 即时分析和快速修复 DataGrip会检测代码中可能存在的错误,并建议动态修复它们的最佳选项。...要打开此文件,请转到“ 帮助”| 显示SQL日志。 ? ? 新的SQL格式化程序 感谢您与我们分享您对SQL样式的想法!我们希望现在DataGrip能够容纳更多不同的代码样式。...现在,它们中的任何一个都可以专门用于每个数据源。为此,请转到数据源属性的“ 选项”选项卡: ? 运行存储过程 从过程的上下文菜单中选择“执行”。将生成SQL代码。输入所需参数的值,然后单击“确定”。...要查看它,请在调用说明计划后单击工具栏上的“ 显示可视化”按钮: ? SQL编辑 上下文信息在编辑包中的大型过程时,有时在其上下文中刷新内存是有用的,即现在正在编辑的特定过程或包。
DataGrip 版是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL...完成可以识别表格结构、外键,甚至是您正在编辑的代码中创建的数据库对象。 即时分析和快速修复 DataGrip会检测代码中可能存在的错误,并建议动态修复它们的最佳选项。...要打开此文件,请转到“ 帮助”| 显示SQL日志。 新的SQL格式化程序 感谢您与我们分享您对SQL样式的想法!我们希望现在DataGrip能够容纳更多不同的代码样式。...现在,它们中的任何一个都可以专门用于每个数据源。为此,请转到数据源属性的“ 选项”选项卡: 运行存储过程 从过程的上下文菜单中选择“执行”。将生成SQL代码。输入所需参数的值,然后单击“确定”。...要查看它,请在调用说明计划后单击工具栏上的“ 显示可视化”按钮: SQL编辑 上下文信息在编辑包中的大型过程时,有时在其上下文中刷新内存是有用的,即现在正在编辑的特定过程或包。
" type="typename" /> name :类里的属性名 column:对应数据表的列名 type:数据库中的类型 1.2.3 many-to-one 在Nhibernate...中,多对一的配置是在一的一端,表示该类有一个外键导航。...增删改查 Nhibernate的每次操作都基于一个Session,所以我们在操作数据库的时候最好先持有一个可用的Session。接下来,我们就一个通用数据库操作类为基础,向大家分享一下我的想法。...2.3 删除 NHibernate的删除也十分简单,直接通知ISession删除某个持久化对象。...不过在本篇内容完结之前,先补充一个NHibernate的SqlDialect选值: 数据库 Dialect 备注 DB2 NHibernate.Dialect.DB2Dialect DB2 for iSeries
最后我们还必须在映射文件中面包含须要持久化属性的声明。...Hibernate配置 我们如今已经有了一个持久化类和它的映射文件,是时候配置Hibernate了。在我们做这个之前,我们须要一个数据库。...HSQL DB,一个java-based内嵌式SQL数据库(in-memory SQL Database),能够从HSQL DB的站点上下载。...通过在Hibernate配置中设置Transaction工厂,你能够把你的持久化层部署在不论什么地方。 查看第 12 章 事务和并发了解很多其它关于事务处理和划分的信息。...使双向关联工作 首先,请牢记在心,Hibernate并不影响通常的Java语义。 在单向关联中,我们是如何在一个Person和一个Event之间创建联系的?
DataGrip 版是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL...完成可以识别表格结构、外键,甚至是您正在编辑的代码中创建的数据库对象。即时分析和快速修复DataGrip会检测代码中可能存在的错误,并建议动态修复它们的最佳选项。...无论是您的SQL还是DataGrip需要在内部运行的东西,请查看“ 输出”选项卡以了解发生了什么。其次,来自IDE的所有查询现在都记录在文本文件中。要打开此文件,请转到“ 帮助”| 显示SQL日志。...现在,它们中的任何一个都可以专门用于每个数据源。为此,请转到数据源属性的“ 选项”选项卡:4、运行存储过程从过程的上下文菜单中选择“执行”。将生成SQL代码。输入所需参数的值,然后单击“确定”。...要查看它,请在调用说明计划后单击工具栏上的“ 显示可视化”按钮:6、SQL编辑上下文信息在编辑包中的大型过程时,有时在其上下文中刷新内存是有用的,即现在正在编辑的特定过程或包。
实例状态 在NHibernate中,一个可持久化的对象有三种不同的状态,依据与持久化上下文之间的关系不同,其中ISession就是一个持久化上下文。...状态分为以下三种: transient 暂存的、临时的 该状态的对象并没有被持久化上下文捕获到,简单来讲就是刚被创建,还没有从数据库/持久化上下文中获取到主键信息。...造成的原因可能有,上下文关闭了;该对象是在另一个上下文中持久化的,它对于当前上下文是游离态的。 3....数据库连接字符串的名称,指的是配置在程序的配置文件中 connectionStrings节点的数据连接字符串。...show_sql 是否在控制台中打印转换的SQL语句,一般在调试的过程中会设置为true,用来确认生成的SQL是否正确等。
) mappers(映射器) 二、属性(properties) 属性可以在外部进行配置,并可以进行动态替换 Java 属性文件中配置这些属性,也可以 properties 元素的子元素中设置 设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值 ...然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。...提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。...value="oracle" /> 在提供了属性别名时,databaseIdProvider 的 DB_VENDOR 实现会将 databaseId 设置为数据库产品名与属性中的名称第一个相匹配的值
确定哪种类型的数据库或数据库服务最适合您的企业的最佳方法是什么?这完全取决于您需要什么类型的用例。在本文中了解更多信息。 基本上,我们每天使用的所有数字信息都在世界某处的数据库管理系统或存储阵列中。...这些驱动程序现在可以在GitHub上使用。 键值/差异: IBM的商标,在几十年的产品开发和服务中建立起来的声誉,在所有数据中心系统软件和设备中意义重大。 DB2系统的一个重要特性是错误处理。...SQL communications area (SQLCA)结构曾经专门用于DB2程序中,在执行每条SQL语句之后将错误信息返回给应用程序。...窗体和报表中使用的可视化对象在VBA编程环境中公开它们的方法和属性,VBA代码模块可以声明和调用Windows操作系统操作。...键值/差异: 除了用作自己的数据库存储文件之外,Microsoft Access还可以用作程序的前端,而其他产品用作后端表,如Microsoft SQL Server和非Microsoft产品,如Oracle
大魏这个类,在被生成对象时,会从数据库表中读数据,然后可能会对数据修改,修改的这些数据,会存到持久性上下文中(运行在内存中),在默写情况下,会被存回数据库表中(例如提交)。...五、EntityManager接口和关键方法 javax.persistence.EntityManager接口用于与持久性上下文进行交互。 实体实例及其生命周期在持久性上下文中进行管理。...// code to handle PersistenceException } } } contains()方法将一个实例作为参数并检查实例是否在持久化上下文中...JPA提供程序在启动时使用JNDI查找服务按名称查找数据源。 4可以在属性元素中设置其他标准或特定于供应商的属性。 hibernate.Dialect属性指定使用哪个数据库。...将@Column(name =“name”)注释添加到personName属性,以将其映射到数据库表中的名称字段。 导入所需的库。 ? ?
持久化配置步骤 要将JobDetail等信息持久化我们的数据库中,我们可按一下步骤操作: 配置数据库 在 /docs/dbTables 目录下存放了几乎所有数据库的的SQL脚本,这里的 是解压 Quartz...名-值 对的形式存储,而不用让更复杂的对象以序列化的形式存入 BLOB 列中。...如果你有多个 Quartz 实例在用同一套数据库时,这个属性就必须设置为 true。...否 一个可选的 SQL 查询字串,DataSource 用它来侦测并替换失败/断开的连接。...,我们只要将它放在类路径下,然后运行我们的程序,即可覆盖在quartz.jar包中默认的配置文件
领取专属 10元无门槛券
手把手带您无忧上云