Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
2. 编程语言中对应的数据结构 java c# php ( Dic/Map List datatable ) 1
5. ASP.NET 数据控件:GridView,DataList,Repeater ,DetailsView,FormView。 2
7.1. 使用Preferences API (限定访问路径了) 2
1. 数据结构( 树形结构,表形数据,对象结构 )
2. 编程语言中对应的数据结构 java c# php ( Dic/Map List datatable )
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
3. 数据库存储数据
表形数据当然适合 常见的关系型数据库了。。
树形数据库(层次数据库ldap ,,,注册表 ) ,树形数据库可以使用LDAP来访问,相当于rmdb的sql
面向对象数据库 db4o
4. 数据的表形显示( 多条记录 与单条记录 )
5. ASP.NET 数据控件:GridView,DataList,Repeater ,DetailsView,FormView。
ASP.NET 数据控件综述:
1.前3个用于呈现多条记录,后面2个用于呈现单条数据明细,即常用的记录明细。
2.GridView和DetailsView控件的布局固定,自定义数据显示的布局功能有限,一般适合布局简单的
数据呈现。3.DataList,Repeater和FormView数据控件都有很强的自定义布局能力,如果数据呈现
需要较为复杂的布局方案,这3个控件是首选。
6. 树形数据常见的操作
6.1. 获取所有子节点
7. Java 操作注册表
7.1. 使用Preferences API (限定访问路径了)
由于java程序是“write once, run everywhere”,用java读写注册表,那程序的跨平台性就差了。java对注册表的操作,在jdk1.4以前的版本中,那是不可能的,只能用 JNI来实现;然而jdk1.4之后提供的prefs包可以操作windows注册表,不过定死了root只在SOFTWARE/JavaSoft /prefs下,估计也是出于这种两难吧,又要保证所谓平台无关,还要照顾大家对windows的依赖
。而 JDK 提供操作 Windows 的 API 也就是 Preferences,因为这个 API 也是跨平台的,所功能比较弱,在 Win32 下只能用来操作 HKCU\Software\JavaSoft 和 HKLM\Software\JavaSoft 下及子节点的数据。
自由访问注册表其他键的值光用 Java 是做不到的,必然方案就是 JNI,
Preferences API并不是为访问Windows注册表而设计的,这是值得指出的一点。
我们之所以会有上面的误解是由于Sun的Windows版本的JDK在实现Preferences API时使用了Windows注册表作为存储库,即我们用Preferences API存储的数据会保存到Windows注册表中,这样Preferenes API也就有了访问Windows注册表的能力。但是换到其它的平台或其它厂商的JDK实现又会怎么样呢?这个问题是和Preferences API的实现相关的,我们没有办法回答。
如果程序不关心存储库的细节,只是要找一个存放数据的地方,那么Preferences API很合适。
Preferences API也是有局限的,请您考虑两个问题:
· 一个Java软件,这次我在Sun的JDK上运行并使用Preferences API保存了我的个人喜好,下次我在IBM的JDK上运行,这时我的个人喜好还可以通过Preferences API得到吗?可能可以也可能不可以,这时的行为是由Sun和IBM的Preferences API实现决定的。(在相同的JDK实现上可以使用Preferences API来在不同的程序间共享数据)
· 一个Java软件需要让用户设置是否和操作系统一起启动,类似的需求还很多。这类需求就是要求Java程序有真正的和相关操作系统协同的能力。这种能力不是Preferences API的设计目标。
java读写注册表需要用到两种方式:
1. java.util.prefs.* 中的包
其中 Preferences.systemRoot() 得到的是 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs 可以在此位置之下方便的进行注册表的 读写
Preferences.userRoot() 得到的是 HKEY_LOCAL_USER/Software/JavaSoft/prefs,可以在此位置下进行注册表
但是对其他
位置操作就不方便。
示例代码:
import java.util.prefs.*;
public class Registery {
String[] keys = {"aaa", "bbb", "ccc"};
String[] values = {"1", "2", "3"};
//把相应的值储存到变量中去
public void writeValue() {
// HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs下写入注册表值.
Preferences pre = Preferences.systemRoot().node("/javaplayer");
for (int i = 0; i < keys.length; i++) {
pre.put(keys, values);
}
}
public static void main(String[] args) {
Registery reg = new Registery();
reg.writeValue();
}
}
执行代码的结果会在 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs/javaplayer 位置插入三个键值
7.2. 使用JNI
Windows操作系统提供了操作注册表的API,因此用JNI将Java和这些API连接起来我们就获得了用Java操作注册表的能力。这说起来有些简单,实现起来却需要处理大量的细节。幸运的是这样的工作已经有人做了,我们要感谢他们。下面我们就来看看其中的一个包。
com.ice.jni.registry包是通过JNI(Java native interface)实现的Windows注册表操作API,可以用来访问、修改和导出Windows注册表。现在这个包已经公开了,可以放心的使用而不 必担心license的问题,并且包括一个构建好的DLL和Java、C的源代码。它可以在Java 1.1和更高的版本上工作。
2. 开源读写注册表的库 registry-3.1.3 主页地址:http://www.trustice.com/java/jnireg/index.shtml
下载后需要将ICE_JNIRegistry.dll放到目前正在用的 jdk的bin目录下
7.3. Jregistrykey 推荐
7.4. Jregistry
jRegistry通过JNI技术来访问WINDOWS注册表API。
Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结的更多相关文章
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中
第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表) insert into B数据库.dbo.B表 select * from A数据库. ...
- sql 用表组织数据
一.四种完整性约束 1.实体完整性约束:不允许出现相同记录的数据 2.域完整性约束:对字段进行限定,不得插入不符合限定的数据 3.引用完整性:表与表之间的关系 4.自定义完整性约束:开发人员自己设定对 ...
- {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析
MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...
- 利用Sql实现将指定表数据导入到另一个数据库示例
因为工作中经常需要将数据从一个数据库导入到另一个数据库中,所以将这个功能写成一个存储过程,以方便调用.现在粘贴出来供大家参考: 注意:1,以下示例中用到了syscolumns,sysobjects等系 ...
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sq ...
- SQL将一个数据库中的数据复制到另一个数据库中
复制表结构 首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击"编写表脚本为"→"CREATE到"→&quo ...
- Atitit 常见的树形结构 红黑树 二叉树 B树 B+树 Trie树 attilax理解与总结
Atitit 常见的树形结构 红黑树 二叉树 B树 B+树 Trie树 attilax理解与总结 1.1. 树形结构-- 一对多的关系1 1.2. 树的相关术语: 1 1.3. 常见的树形结构 ...
- 使用Oracle数据库实现树形结构表的子-父级递归查询和删除,通过级联菜单简单举例
前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...
随机推荐
- Python学习 —— 阶段综合练习三
Python学习 —— 阶段综合练习三 综合之前文件与文件夹操作的学习,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 目录文件遍历(二层目录结构) 1). ...
- go语言基础之普通参数列表
1.普通参数列表 (备注:只有一个参数) 示例1: package main //必须有一个main包 import "fmt" //有参无返回值函数的定义,普通参数列表 //定义 ...
- hello--GAN
GAN系列学习(1)——前生今世 DCGAN.WGAN.WGAN-GP.LSGAN.BEGAN原理总结及对比 [Learning Notes]变分自编码器(Variational Auto-Encod ...
- 为什么Domain controller上的time synchronization非常重要?
虚拟机默认情况下所拥有的资源都是不同的, 比如说CPU clock. 在一个忙碌的系统中, 虚拟机甚至可能在很短的一段时间内被拒绝分配资源给它, 这种情况还可能发生在高系统负荷, VMotion, B ...
- 超链接的禁用属性Disabled了解
可以设置超链接的Disabled属性的true 和 false来确定超链接是不是能点击 例如: <a herf='http://www.baidu.com' onclick='return cl ...
- Centos7 安装pycharm
可以通过浏览器访问http://www.jetbrains.com/pycharm/,选择需要下载的版本,也可以通过wget下载可执行程序. [root@localhost ~] wget https ...
- myeclipse发布项目到tomcat时项目名称与web应用名称不一致问题
工程名称原来为old,发布到tomcat webapps下后为old, 右键点击你的项目,然后选择重构---->重命名,项目名称改为new,但是发布名还是原来的名字.如果想让发布后的目录名为ne ...
- Event.RESIZE 的事件不触发
stage.scaleMode=StageScaleMode.NO_SCALE;(或者设置其他缩放模式,如EXACT_FIT等): 如果没有设置 stage的缩放模式的话, stage.addEv ...
- Install certificates needed for Visual Studio offline installation
Visual Studio is primarily designed for installation from an internet-connected machine, since many ...
- [Angular] Angular Elements Intro
Make sure install the latest Angular v6 with Angular CLI. Checkout ght Github for the code. 1. Creat ...