zoukankan      html  css  js  c++  java
  • Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结

    Atitit.各种  数据类型 树形结构,表形数据  ) 的结构与存储数据库 attilax  总结

    1. 数据结构( 树形结构,表形数据,对象结构 ) 1

    2. 编程语言中对应的数据结构 java c# php ( Dic/Map      List    datatable ) 1

    3. 数据库存储数据  1

    4. 数据的表形显示( 多条记录 与单条记录 ) 2

    5. ASP.NET 数据控件:GridView,DataList,Repeater ,DetailsView,FormView。 2

    6. 树形数据常见的操作 2

    6.1. 获取所有子节点 2

    7. Java  操作注册表 2

    7.1. 使用Preferences API (限定访问路径了) 2

    7.2. 使用JNI 4

    7.3. Jregistrykey 推荐 4

    7.4. Jregistry 4

    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 下只能用来操作 HKCUSoftwareJavaSoft 和 HKLMSoftwareJavaSoft 下及子节点的数据。

    自由访问注册表其他键的值光用 Java 是做不到的,必然方案就是 JNI

    Preferences API并不是为访问Windows注册表而设计的,这是值得指出的一点。

    我们之所以会有上面的误解是由于SunWindows版本的JDK在实现Preferences API时使用了Windows注册表作为存储库,即我们用Preferences API存储的数据会保存到Windows注册表中,这样Preferenes API也就有了访问Windows注册表的能力。但是换到其它的平台或其它厂商的JDK实现又会怎么样呢?这个问题是和Preferences API的实现相关的,我们没有办法回答。 

    如果程序不关心存储库的细节,只是要找一个存放数据的地方,那么Preferences API很合适。

    Preferences API也是有局限的,请您考虑两个问题: 

    · 一个Java软件,这次我在SunJDK上运行并使用Preferences API保存了我的个人喜好,下次我在IBMJDK上运行,这时我的个人喜好还可以通过Preferences API得到吗?可能可以也可能不可以,这时的行为是由SunIBMPreferences 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,因此用JNIJava和这些API连接起来我们就获得了用Java操作注册表的能力。这说起来有些简单,实现起来却需要处理大量的细节。幸运的是这样的工作已经有人做了,我们要感谢他们。下面我们就来看看其中的一个包。

    com.ice.jni.registry包是通过JNI(Java native interface)实现的Windows注册表操作API,可以用来访问、修改和导出Windows注册表。现在这个包已经公开了,可以放心的使用而不 必担心license的问题,并且包括一个构建好的DLLJavaC的源代码。它可以在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。

  • 相关阅读:
    Go语言入门
    简述cookies 和 session
    Linux inode 理解
    BZOJ 1012 最大数maxnumber
    BZOJ 1087 互不侵犯king
    CSS从大图中抠取小图完整教程(background-position应用)
    javascript中i++与++i
    脱离文档流分析
    在Windows上以zip压缩包方式安装mysql
    centos7 python2.7下安装paramiko模块
  • 原文地址:https://www.cnblogs.com/attilax/p/5963756.html
Copyright © 2011-2022 走看看