鲁春利的工作笔记,谁说程序员不能有文艺范?
Derby同时提供了在Linux下和Windows下运行的脚本:
E:\mvtech\db-derby-10.11.1.1\bin>ls -l total 64 -rw-rw-rw- 1 user group 5801 Aug 7 2014 NetworkServerControl -rwxrwxrwx 1 user group 1413 Aug 1 2014 NetworkServerControl.bat -rw-rw-rw- 1 user group 5740 Aug 7 2014 dblook -rwxrwxrwx 1 user group 1387 Aug 1 2014 dblook.bat -rwxrwxrwx 1 user group 2426 Aug 1 2014 derby_common.bat -rw-rw-rw- 1 user group 5876 Aug 7 2014 ij -rwxrwxrwx 1 user group 1379 Aug 1 2014 ij.bat -rw-rw-rw- 1 user group 1073 Aug 1 2014 setEmbeddedCP -rwxrwxrwx 1 user group 1278 Aug 1 2014 setEmbeddedCP.bat -rw-rw-rw- 1 user group 1079 Aug 1 2014 setNetworkClientCP -rwxrwxrwx 1 user group 1284 Aug 1 2014 setNetworkClientCP.bat -rw-rw-rw- 1 user group 1075 Aug 1 2014 setNetworkServerCP -rwxrwxrwx 1 user group 1273 Aug 1 2014 setNetworkServerCP.bat -rw-rw-rw- 1 user group 5807 Aug 7 2014 startNetworkServer -rwxrwxrwx 1 user group 1397 Aug 1 2014 startNetworkServer.bat -rw-rw-rw- 1 user group 5810 Aug 7 2014 stopNetworkServer -rwxrwxrwx 1 user group 1403 Aug 1 2014 stopNetworkServer.bat -rw-rw-rw- 1 user group 5789 Aug 7 2014 sysinfo -rwxrwxrwx 1 user group 1389 Aug 1 2014 sysinfo.bat
1、设定环境变量
${DERBY_HOME}以及${DERBY_HOME}/bin环境变量的设置是为了简化脚本操作,避免每次都必须指定绝对路径;但,如果希望在Java应用程序中使用Derby,那么就必须设置CLASSPATH环境变量。
配置Derby环境变量时可以修改Windows的环境变量或Linux配置文件,也可以通过命令配置临时的环境变量,该临时配置方式仅限于当前应用有效。
setEmbeddedCP
设置以Embedded模式运行时Derby数据库的classpath,该脚本将derby.jar和derbytools.jar添加到classpath。
export CLASSPATH="${DERBY_HOME}/lib/derby.jar:${DERBY_HOME}/lib/derbytools.jar:${CLASSPATH}"
setNetworkServerCP
设置以Network Server模式运行时Derby数据库的classpath,该脚本将derbynet.jar和derbytools.jar添加到classpath。
export CLASSPATH="${DERBY_HOME}/lib/derbynet.jar:${DERBY_HOME}/lib/derbytools.jar:${CLASSPATH}"
setNetworkClientCP
当希望通过Network Client访问数据库时,需要通过该脚本设置Derby数据库的classpath,该脚本将derbyclient.jar和derbytools.jar添加到classpath。
export CLASSPATH="${DERBY_HOME}/lib/derbyclient.jar:${DERBY_HOME}/lib/derbytools.jar:${CLASSPATH}"
2、sysinfo
sysinfo provides information about your version of Derby and your environment。
C:\>sysinfo.bat ------------------ Java 信息 ------------------ Java 版本: 1.7.0_79 Java 供应商: Oracle Corporation Java 主目录: C:\Java\jdk1.7.0_79\jre Java 类路径: 略 OS 名: Windows 7 OS 体系结构: amd64 OS 版本: 6.1 Java 用户名: Administrator Java 用户主目录:C:\Users\Administrator.ZGC-20130427XQA Java 用户目录: C:\ java.specification.name: Java Platform API Specification java.specification.version: 1.7 java.runtime.version: 1.7.0_79-b15 --------- Derby 信息 -------- [E:\mvtech\db-derby-10.11.1.1\lib\derby.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbytools.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbynet.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbyclient.jar] 10.11.1.1 - (1616546) ------------------------------------------------------ ----------------- 区域设置信息 ----------------- 当前区域设置: [中文/中国 [zh_CN]] 找到支持的区域设置:[cs] 版本:10.11.1.1 - (1616546) 找到支持的区域设置:[de_DE]
3、ij
ij is Derby's interactive JDBC scripting tool,can be used in an embedded or a client/server environment。
connect '数据库/url' [ PROTOCOL namedProtocol ] [ AS connectionName ]; -- 连接到数据库/URL SET CONNECTION connectionName; -- 切换到指定的连接 DISCONNECT [ CURRENT | connectionName | ALL ]; -- 删除当前的、指定的或所有连接; SHOW SCHEMAS; -- 列出当前数据库中的所有方案 SHOW [ TABLES | VIEWS | PROCEDURES | FUNCTIONS | SYNONYMS ] { IN 方案 }; SHOW INDEXES { IN 方案 | FROM 表 }; -- 列出方案中的索引,或者某个表的索引 DESCRIBE 名称; -- 列出指定表中的列 COMMIT; -- 提交当前事务处理 ROLLBACK; -- 回退当前事务处理 RUN '文件名'; -- 从指定的文件运行命令 MAXIMUMDISPLAYWIDTH integerValue; -- 将每一列的最大显示宽度 EXIT; -- 退出 ij HELP; -- 显示此消息
4、dblook
dblook is Derby's Data Definition Language (DDL) Generation Utility。It is a simple utility that dumps the DDL of a user-specified database to either a console or a file.
查看数据库的定义(包括数据库及所有表定义):
dblook.bat -d jdbc:derby:DemoDB -z schema [-t tablenaeme1 tablename2 ] [-td delimiter] --默认以;结尾 [-noview] [-append] [-verbose] [-o filen]
示例:
C:\>dblook.bat -d jdbc:derby:DemoDB -z DemoDB -t t_user -verbose -- 时间戳记:2015-12-03 11:47:42.062 -- 源数据库为:DemoDB -- 连接 URL 为:jdbc:derby:DemoDB -- dblook 实用程序将仅考虑指定的表。 -- 指定的方案为:DemoDB -- appendLogs: false -- ---------------------------------------------- -- 方案的 DDL 语句 -- ---------------------------------------------- CREATE SCHEMA "DEMODB"; -- ---------------------------------------------- -- 表的 DDL 语句 -- ---------------------------------------------- CREATE TABLE "DEMODB"."T_USER" ( "ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "CREATE_TIME" DATE NOT NULL, "UPDATE_TIME" DATE NOT NULL, "IS_BLACKLIST" BOOLEAN, "IMPI" VARCHAR(50), "MSISDN" VARCHAR(50), "NAME" VARCHAR(50), "REAL_NAME" VARCHAR(50), "TEEID" VARCHAR(50), "IS_WHITELIST" BOOLEAN, "DEVICE_ID" BIGINT ); -- 这里的分号即为td默认指定的,如果-td A,那么这里的;就变成了A -- ---------------------------------------------- -- 键的 DDL 语句 -- ---------------------------------------------- -- PRIMARY/UNIQUE ALTER TABLE "DEMODB"."T_USER" ADD CONSTRAINT "SQL151201153009260" PRIMARY KEY ("ID"); -- FOREIGN ALTER TABLE "DEMODB"."T_USER" ADD CONSTRAINT "FK_OH3K3O6A1Q4INSEBWFMEKHI0U" FOREIGN KEY ("DEVICE_ID") REFERENCES "TEETSM_TEST"."T_DEVICE" ("ID") ON DELETE NO ACTION ON UPDATE NO ACTION; C:\>
5、startNetworkServer
实际调用:
exec \"$JAVACMD\" $DERBY_OPTS -classpath \"$LOCALCLASSPATH\" org.apache.derby.drda.NetworkServerControl start $@
6、stopNetworkServer
实际调用:
exec \"$JAVACMD\" $DERBY_OPTS -classpath \"$LOCALCLASSPATH\" org.apache.derby.drda.NetworkServerControl start $@
7、NetworkServerControl
用法:NetworkServerControl <命令> 命令: start [-h <主机>] [-p <端口号>] [-noSecurityManager] [-ssl <ssl 模式>] shutdown [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] [-user <用户名>] [-password <口令>] ping [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] sysinfo [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] runtimeinfo [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] logconnections { on|off } [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] maxthreads <最大值>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>] timeslice <毫秒>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>] trace { on|off } [-s <会话 ID>][-h <主机>][-p <端口号>] [-ssl <ssl 模式>] tracedirectory <跟踪目录>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>]
8、derbyrun.jar
C:\>java -jar %DERBY_HOME%/lib/derbyrun.jar 用法: java -jar derbyrun.jar ij [-p propertiesfile] [sql script] java -jar derbyrun.jar sysinfo [-cp ...] [-cp help] java -jar derbyrun.jar dblook [args](或没有用法自变量) java -jar derbyrun.jar server [args](或没有用法自变量)
ij
C:\>java -jar %DERBY_HOME%/lib/derbyrun.jar ij F:\ftpfile\ij_sample.sql ij 版本 10.11 ij> connect 'jdbc:derby://localhost:1527/teetsm_test'; ij> SELECT id, name, real_name FROM teetsm_test.t_user where id < 5; ID |NAME |REAL_NAME -------------------------------------------------------- 1 |lucl |鲁春利 已选择 1 行 ij> C:\>
sysinfo
C:\>sysinfo (UNIX) java [options] -jar $DERBY_HOME/lib/derbyrun.jar sysinfo (Windows) java [options] -jar %DERBY_HOME%\lib\derbyrun.jar sysinfo java org.apache.derby.tools.sysinfo C:\>java -jar %DERBY_HOME%/lib/derbyrun.jar sysinfo ------------------ Java 信息 ------------------ Java 版本: 1.7.0_79 Java 供应商: Oracle Corporation Java 主目录: C:\Java\jre7 Java 类路径: E:\mvtech\db-derby-10.11.1.1/lib/derbyrun.jar OS 名: Windows 7 OS 体系结构: amd64 OS 版本: 6.1 Java 用户名: Administrator Java 用户主目录:C:\Users\Administrator.ZGC-20130427XQA Java 用户目录: C:\ java.specification.name: Java Platform API Specification java.specification.version: 1.7 java.runtime.version: 1.7.0_79-b15 --------- Derby 信息 -------- [E:\mvtech\db-derby-10.11.1.1\lib\derby.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbytools.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbynet.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbyclient.jar] 10.11.1.1 - (1616546) [E:\mvtech\db-derby-10.11.1.1\lib\derbyoptionaltools.jar] 10.11.1.1 - (1616546) ------------------------------------------------------ ----------------- 区域设置信息 ----------------- 当前区域设置: [中文/中国 [zh_CN]]
dblook
# 与单独执行dblook是一样的 C:\>java -jar %DERBY_HOME%/lib/derbyrun.jar dblook
server
C:\>java -jar %DERBY_HOME%/lib/derbyrun.jar server Thu Dec 03 17:16:19 CST 2015 : 未提供命令。 用法:NetworkServerControl <命令> 命令: start [-h <主机>] [-p <端口号>] [-noSecurityManager] [-ssl <ssl 模式>] shutdown [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] [-user <用户名>] [-password <口令>] ping [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] sysinfo [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] runtimeinfo [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] logconnections { on|off } [-h <主机>][-p <端口号>] [-ssl <ssl 模式>] maxthreads <最大值>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>] timeslice <毫秒>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>] trace { on|off } [-s <会话 ID>][-h <主机>][-p <端口号>] [-ssl <ssl 模式>] tracedirectory <跟踪目录>[-h <主机>][-p <端口号>] [-ssl <ssl 模式>] C:\>