前言
众所周知,Berkeley DB 产品家族(包括了 C语言版,Java版和XML数据库)是一套高效率的,可扩展的嵌入式数据库引擎。此处,所谓数据库引擎是指它提供了除SQL处理层以外的所有关系数据库的功能(如事务性(ACID)支持,数据存储,数据恢复等)。那么,您不禁要问,为什么Berkeley DB产品不提供对SQL的支持呢?答案很简单,它可以嵌入到您的应用代码中,在应用代码的地址空间运行,从而达到高效率。
到底有多高效?
在我自己的DELL OptiPlex 745 台式机上(Intel(R) Core(TM)2 CPU 6400, 2G memory, running Ubuntu 7.04 Server x86_64),用自己写的一个单线程的例子程序在9秒内读取了100万条记录,22秒内插入100万的记录。
从关系表的角度看,我插入数据的行定义,大致如下:
f0 INT PRIMARY KEY,
f1 STRING PRIMARY KEY,
id LONG,
one STRING,
two DOUBLE,
three STRING,
zip INT,
city STRING,
state STRING
在Berkeley DB Java 版中的定义如下:
阅读全文…
本文通过分析Berkeley DB自带的示例程序来详细阐述了使用Berkeley Db基本功能的方法。这之后还将有更多这类文章,我认为通过学习好的例子和已有代码来学习使用berkeley db是很有效的。
阅读全文…
JasperReport是一个流行的Java开源报表工具,BerkeleyDB是一个流行的开源嵌入式数据库产品. 长久以来,JasperReport无法显示BerkeleyDB中的数据. 但是,现在这一状况得到了改善.JasperForge在2008-08-05正式发布了BerkeleyDB的Driver,这意味着,以后可以使用 JasperReport来显示存储于BerkeleyDB中的内容了.
本文将主要介绍如何利用JasperReport来显示 BerkeleyDB的数据.BerkeleyDB产品家族包含了C 语言 Edition(Core), Java Edition,和XML Edition. 本文针对的是Core Edition最新的Release, 4.7.25. 为了给读者一个直观的印象.本文将创建一个使用BerkeleyDB用于存储学生信息的数据库,而后使用JasperReport显示其内容.
阅读全文…
对于在Linux下工作的人来说, 经常需要使用ssh. 在使用控制台登录到远程机器上以后再执行操作的情况下,不存在使用环境变量的问题. 但是,对于不需要登录而直接用ssh在远程机器上执行命令的而言, 环境变量的使用就是一个问题了. 因为,远程机器的ssh server使用的是默认的环境变量,尤其是PATH. 比如我在当前机器abcn5上,执行echo $PATH,显示的是: “/opt/java/bin:/opt/intel/cce/10.1.015/bin:/usr/local/bin:/usr/bin:/bin:”, 但是,我在其他机器上执行 ssh abcn5 ‘echo $PATH’,显示的却是: “/usr/local/bin:/usr/bin:/bin”.
对于需要自动化测试的人来说, 经常需要使用一台机器控制代码分布到各个远程机器上,并且在远程机器上执行测试. 既然是自动化,整个过程不需要人工的干预,即不需要使用控制台登录到远程机器. 这种情况, 工作都是通过使用ssh在远程机器上执行命令来完成的. 而经常, 所使用到的程序不在默认的PATH中, 许多需要的环境变量默认也不存在. 这种情况下, 就需要让ssh server能够接受自定义的环境变量(包括PATH).
阅读全文…
假设脚本为a.sh,则要运行该脚本,有以下方式
1 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh, 如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可
2 sh/bash a.sh的路径,这种情况不需要脚本具有执行权限.
以上两种情况中,脚本中$0都是a.sh,都是在shell的子进程中运行的.
3 source a.sh的路径
4 . a.sh的路径
以 上两种情况都是脚本在当前shell的进程中运行,所以$0都是bash/sh, 区别在于, source不是posix shell的内置命令,所以3在sh中实际上是不能运行的,在bash中可以. 而.则无论在bash还是posix shell中都是可以用来载入并执行脚本. 所以, 相对而言, 应该是4 更加具有移植性.
最近评论