xml数据库

基于 XML Schema 的数据存储方案

邮差的信 提交于 2019-12-26 20:04:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引言 对于一些小型的项目,需要存储的数据字段和数据量可能都比较小,为了降低项目成本,或提高项目的独立性,开发人员希望能不依赖数据库进行开 发。此时,利用 XML Schema 进行数据存储便是一个非常好的解决方案。利用此方法可以直接把数据存储在 xml 文件中,然后把 xml 文件存放在磁盘的某个位置,这样会使得项目的部署与运行非常的方便。 本文会详细的介绍如何基于 xml schema 进行数据的存储,如何以面象对象的方式对 xml 文件进行操作,以提高项目的开发速度和准确度。 文中还提供了一些详细的代码示例来帮助读者了解开发的技术细节。 Schema 数据存储概述 利用 XML Schema 存储数据的原理就是将数据存储在 schema 所定义的 xml 文档中, 但本文中所讲述的实现方法不会直接面对 xml,而是通过一些类以面象对象的方式实现存取操作,这些类是利用开发工具自动的生成的。本文会以 WID (Websphere Integration Development) 为参考,详细介绍如何构建一个 XML Schema,如何根据 schema 生成 Java 类,以及如何应用这些类进行数据的存取操作。总体来说,应用 schema 进行数据存储大致分为以下几个步骤: 创建一个合适的 schema 文件

Spring源码深度解析笔记(9)——Spring容器的基本实现

蹲街弑〆低调 提交于 2019-12-25 16:57:50
2.1 容器的基本用法 bean是Spring中最核心的东西,因为Spring就像一个大水桶,而bean就像容器中的水,水桶脱离了水也没什么用处。 2.2 功能分析 Spring创建对象的功能就是一下几点: 读取配置文件; 根据配置文件中的配置找到对应的类的配置,并实例化; 调用实例化后的实例。 如果想完成上述功能,至少需要三个类: ConfigReader:用于读取以及验证配置文件,然后放置在内存中; ReflectionUtil:用于根据配置文件中的配置进行反射实例化, App:用于完成整个逻辑的串联。 2.4 Spring的结构组成 2.4.1 beans包的层级结构 整个beans工程的源码包的功能如下: src/main/java:用于展示Spring的主逻辑; src/main/resource:用于存放系统的配置文件; src/test/java:用于主要逻辑进行单元测试; src/test/resource:用于存放测试用的配置文件。 2.4.2 核心类介绍 DefaultListableBeanFactory:XmlBeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个Bean加载的核心部分,是Spring注册以及加载bean的默认实现

XML学习(一)

£可爱£侵袭症+ 提交于 2019-12-25 03:18:57
本文主要记录xml学习过程中的一些笔记,包括xml作用,语法以及解析。 1、HTML和XML的区别 1.1、HTML 名称: H yper T ext M arkup L anguae (超文本标记语言) 标签: 标签是w3c组成指定,固定的,约100来个。也可以自定义标签。(自定义标签也可叫xml标签) 作用: 负责网页的结构 。被设计用来 显示数据 。 HTML: 负责网页的结构 CSS: 负责网页的样式(美观) Javascript: 负责在浏览器端与用户进行交互。 负责静态的网页制作的语言。HTML语言特点: 1)由标签组成。 <title> <p> <hr/> <br/>等。 2)语法结构松散的。表现在:大小写不区分,结束标签和开始标签不一定匹配。 1.2、XML 名称: E x tend M arkup L anguge (可扩展标签语言)。是一种标记语言,很类似 HTML 标签:标签由开发者自己制定的(要按照一定的语法定义),没有被预定义。 作用:设计宗旨是 传输数据 ,而非显示数据。被设计为具有自我描述性。 描述带关系的数据(作为软件的配置文件): 包含与被包含的关系。 作为数据的载体(存储数据,小型的"数据库") 2 XML作用 2.1 描述带关系的数据( 软件的配置文件 ) web服务器(PC): 使用ip(255.43.12.54)地址和端口(1521)

使用eclipse逆向工程开发hibernate项目

偶尔善良 提交于 2019-12-24 16:14:19
在项目设计时,要么根据需求分析建立实体类,然后正向生成数据库表;要么先进行数据库表设计,然后逆向生成实体类。也就是说,不会完成一方的设计后再花时间去匹配建立另一方,这么做的原因是: 1、如果不使用正向或逆向工程,则会是1.5倍的工作量,浪费时间 2、无法保证两边的映射一致。因为两边都是自己设计的,就需要人为地保证映射关系的统一,这样会留下隐患 3、开发、维护上都不利,因为如果任意一方由于某些原因需要修改,那么经常两边都要修改,这样的话映射不一致的可能性不仅会更大,而且效率地下 在eclipse中连接数据库 虽然eclipse自带了数据库管理器(Data Management),但这里我使用的是插件DBViewer,将该插件下载后放到plugins目录下,重启eclipse,点击Window-Show View-Other-DBViewer Plugin-DB Tree View,如下: 右键DBViewerPlugin-Add,如下: 在"DataBase Define Name"中为要连接的数据库取一个名字,点击JDBC Driver下的Add File选项添加连接数据库的jar包,点击Next,如下: 填写好数据库配置信息,点击Test connection测试是否连接上数据库,如下: 点击Finish即完成数据库连接,如下: 下载并安装hibernate tools插件

最简单的XML用法

 ̄綄美尐妖づ 提交于 2019-12-23 16:07:24
在传递数据时,XML和JSON是最常用的数据格式,SQL Server从很早的版本就开始支持XML格式,而对于JSON格式,SQL Server从2016版本开始支持。大多数数据库系统并没有升级到SQL Server 2016版本,因此在传递格式化的数据时,通常还是使用XML格式。对我而言,查询和解析XML格式的数据需要掌握的知识点较多,MSDN上关于XML的文档,又试图把XML的各个方面都讲解地清清楚楚,以至于内容冗杂,使学习过程变得困难。我十分不喜欢学习这些不常用的数据结构,再说,在平时的数据库开发中,用到XML的地方也很少,可是,一旦在应用程序中用到XML,就只有头疼的份了,既然避不开XML,那就用最简单的方法学习它,了解它,使用它,以备不时之需。写这篇文章,就是以最简单的方式,分享XML最常用的使用方法。 一,XML数据格式的简单介绍 1,最简单的XML格式 XML数据最简单的格式是: 开始标签 :<tag> 标签的属性 ,属性值用双引号:<tag id="1" name="azure">,在单个节点中,属性名不能重复,属性之间使用空格分隔,在开始标签中,才能设置属性; 结束标签 :</tag>,结束标签不能有属性; 子节点 :在开始标签和结束标签,可以包含节点,叫做子节点; 节点值 :在开始标签和结束标签的标量值,叫做节点值; 2,使用字符串对 XML数据 赋值

Mybatis常见面试题总结

泄露秘密 提交于 2019-12-23 08:31:48
1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 (2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 (3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。 2、Mybaits的优点: (1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 (2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; (3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。 (4

Mybatis 在XML中遍历 List<Map>

喜你入骨 提交于 2019-12-22 01:27:31
假设有这样一个需求,前端向后端传递数据库查询条件,其结构如下: [{ "columnName": "name", "operator": "=", "value": "张三" }, { "columnName": "age", "operator": ">", "value": "20" }, { "columnName": "gender", "operator": "=", "value": "0" } ] 后端用 List<Map<String, Object>> params 接收,需要在XML里将 params 拼接到 where 条件中。 XML核心遍历代码如下: <!-- 组装查询条件 --> <sql id="select_where"> 1=1 <foreach collection="params" item="param"> and ${param.columnName} ${param.operator} #{param.value} </foreach> </sql> 主要展示遍历方法,null 值判断等可以自行添加以增强程序鲁棒性 来源: CSDN 作者: fly_baizhi 链接: https://blog.csdn.net/weixin_42808551/article/details/103645163

明明不太合适但是还是被用在配置文件和数据传输上的XML

放肆的年华 提交于 2019-12-15 21:02:52
XML概述: 概念: 可扩展的标记语言。 功能: 作为数据本地存储的格式。(已淘汰)作为结构化存储的方式,不如数据库效率高。目前一部分移动设备中还在使用。 作为网络中传输数据的格式。(已淘汰)作为网络传输的格式,在目前以移动互联网为主的环境中,格式太大,所以已被JSON格式替代。 作为配置文件的格式存储配置信息(主要功能) 语法 文本 内部的数据会忽略特殊字符,原样输出<[CDATA[ 数据 ]]> 约束 定义xml文档中可以出现的标签、属性及取值范围等限制条件 作用: 开发阶段,我们都是引入别人写好的约束文件使用。 报错:当我们编写或属性写错时可以有友好的提示 开发时的代码提示:提升开发效率。 约束分类: dtd(逐渐淘汰)老牌的约束技术,有独立的语法。限制规则比较少 schema(新兴)在约束文档中 约束文档: xmlns:xsd="http://www.w3.org/2001/XMLSchema"定义当前文档为约束文档,可以指定约束的规则 targetNamespace目标名称空间, 用于指定当前文档的名称空间。类似于java代码中的package关键字。 此处一旦定义了名称空间,那么在实例文档中引入当前约束文件时,必须指定该名称空间。 实例文档: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"定义当前文档为实例文档

3-MySQL DBA笔记-开发基础

五迷三道 提交于 2019-12-13 18:13:04
第二部分 开发篇 本篇首先讲述数据库开发的一些基础知识,如关系数据模型、常用的SQL语法、范式、索引、事务等, 然后介绍编程开发将会涉及的数据库的一些技巧,最后结合生产实际,提供一份开发规范供大家参考。 第3章 开发基础 本章将为读者介绍MySQL数据库相关的开发基础,首先,介绍一些基础概念,然后讲解关系数据模型和SQL基础。 由于在互联网开发者中,PHP开发者占据了相当大的比重,因此这里也将简要介绍下PHP开发者应该掌握的一些基础知识和开发注意事项。 最后,要接触的是MySQL数据库更深层次的内容——索引、主键、字符集等。 3.1 相关基础概念 (1)框架 在软件开发过程中,研发人员经常借助框架(framework)来辅助自己进行软件开发。 成熟的框架可以帮助处理很多细节性的问题,并完成一些基础性的工作,如生成访问数据库的代码、简化网络编程,这样开发者就会有更多的时间和精力专注于业务逻辑的设计。 但目前仍存在的一个问题是,一些框架对于数据库的使用不符合我们的预期,或者说不友好,故而有必要先了解一下开发框架是如何存取数据的。 大家有兴趣的话,可深入学习和使用如下这些业内使用比较广泛的一些框架,如 Django(Python)、Ruby onRails(Ruby)、Zend Framework(PHP)、Spring(JAVA)等。 (2)数据模型 数据模型(data model

common digester-入门

∥☆過路亽.° 提交于 2019-12-09 20:18:41
Commons-Digester简介 一.历史 Digester本来仅仅是Jakarta Struts中的一个工具,用于处理struts-config.xml配置文件。显然,将XML文件转换成相应的Java对象是一项很通用的功能,这个工具理应具有更广泛的用途,所以很快它就在Jakarta Commons项目(用于提供可重用的Java组件库)中有了一席之地。 二.几个要点 简言之,Digester 由"事件"驱动 ,通过调用预定义的规则操作对象栈,将XML文件转换为Java对象。工作原理如下: Digester底层采用SAX解析XML文件,所以很自然的,对象转换由"事件"驱动,即在识别出特定XML元素时(实际被细分为begin、body、end、finish四个时点),将执行特定的动作,比如创建特定的Java对象,或调用特定对象的方法等。此处的XML元素根据匹配模式(matching pattern)识别,而相关操作由规则(rule)定义。在转换过程中,Digester维持了一个对象栈,可以看作对象转换的工作台,用来存放转换中生成的、或是为转换临时创建的Java对象。对输入XML文件作了一趟完整的扫描后,对象栈的栈顶元素即为目标对象。由于Digester屏蔽了SAX解析的细节,使用者仅需关注转换操作本身,大大简化了转换操作。 对使用者而言,Digester的核心在于匹配模式与规则(