首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

derby 应用小记

2012-11-05 
derby使用小记?很好的小应用适合的数据库。?关于derby是什么以及什么优点:Apache Derby 资源中心使用过程:?

derby 使用小记

?很好的小应用适合的数据库。

?

关于derby是什么以及什么优点:

Apache Derby 资源中心

使用过程:

?

1.下载?

2.解压缩至: x:/db-derby-10.5.1.1-bin/

3.两种使用方式

?

?? ? 3.1 client-server(cs) 使用 :

?

?? ? ? ? ? ?3.1.1 运行 bin/startNetworkServer.bat ?开始服务器监控 , 运行 bin/ij.bat 开始客户端操作。

??????? 3.1.2 准备数据库 ? install.sql

?

connect 'jdbc:derby://localhost:1527/content_admin;create=true;';CREATE TABLE infos (        id int not null generated always as identity,type VARCHAR(32) not null, -- 类型info Clob  not null, --具体类型region VARCHAR(32) , -- 地区PRIMARY KEY(id));CREATE TABLE images (?       id int not null generated always as identity,position VARCHAR(32) not null, -- 图片位置title VARCHAR(4000)  , --图片描述href VARCHAR(4000)  , -- 链接网址content Clob , -- 自设置内容region VARCHAR(32) , -- 地区,imageSrc VARCHAR(4000)  , --图片地址PRIMARY KEY(id));

?

注意 derby 的 connection url 格式 :jdbc:derby://localhost:1527/content_admin;create=true,create=true 表示如果本机不存在 content_admin 数据库就自动建立一个。

??????????????? 3.1.3 ?在 ij 的命令行下 ?运行 ?run ?"yourpath/install.sql" ? ,yourpath 为 install.sql 所在目录。

??????????????? 3.1.4 ?至此一个数据库以及它的两张表就建立起来了,可以看到 bin 下面 有一个 content_admin 目录,在derby 中一个数据库的内容放在以数据库命名的目录中,对于cs模式 ,默认则在server端建立 数据库对应目录。

?

???????????????? 3.1.5 ?? 修改 默认server端建立数据库目录路径

?

????????????????????????? 3.1.5.1? 首先设置环境变量 DERBY_HOME 为 x:/db-derby-10.5.1.1-bin/

?????????????????? 3.1.5.2? 开启命令行 执行 bin/setNetworkServerCP.bat?? ,接着执行

java -Dderby.system.home=XX:/org.apache.derby.drda.NetworkServerControl start

来启动数据库服务器端。其中 XX:/ 为 客户端建立数据库的话,数据库目录存放的位置,如 ij命令 执行:

?

connect 'jdbc:derby://localhost:1527/content_admin2;create=true;'

?

则会建立对应数据库目录? XX:/content_admin2 存放 content_admin2 数据库的数据。

?

ps:也可在对应路径执行bat来指定数据库存储位置

?

假设derby目录为: x:/db-derby-10.5.1.1-bin/bin/startNetworkServer.bat

则在命令行到x盘执行: db-derby-10.5.1.1-bin/bin/startNetworkServer.bat 而不是直接点击 startNetworkServer.bat

则执行ij

?

connect 'jdbc:derby://localhost:1527/content_admin2;create=true;'

?

在x:/content_admin2生成数据库。

根本原理为 startNetworkServer.bat 中根据DERBY_HOME将derby的lib下相应jar添加到classpath中,然后执行

?

java? org.apache.derby.drda.NetworkServerControl start

?

则默认在哪个目录下执行这条命令,server就将数据库生成在哪个目录下面。

?

?? ? ? 3.2 ?嵌入式 使用?

?? ? ? ? ? ? ? 一般用于程序控制,见下所述。

4:程序操纵数据库。

?? ? ? ? 4.1 ?cs 模式?

?? ? ? ? ? ?? 这里采用 proxool 配置示意 , proxool 配置文件:

?

<proxool>    <alias>xml-test</alias>    <driver-url>jdbc:derby://localhost:1527/content_admin;create=true;</driver-url>    <!--<driver-url>jdbc:derby:content_admin;create=true;</driver-url>--><driver-class>org.apache.derby.jdbc.ClientDriver</driver-class><!--<driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>--><driver-properties>      <property name="useUnicode" value="true"/> <property name="characterEncoding" value="GBK"/></driver-properties><maximum-connection-count>10</maximum-connection-count><maximum-active-time>999999999</maximum-active-time><house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql></proxool>
?

?? ? ? ?数据库控制连接建立管理:

?

package content.db;import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.io.InputStreamReader;public class DBManager {    static {        initial();    }    public static void initial() {        try {            JAXPConfigurator.configure(Path.getFullPathRelateClass("../../datasource.xml", Path.class), false);        } catch (Exception e) {            e.printStackTrace();            System.exit(1);        }        // The false means non-validating    }    public static Connection getConnection() {        Connection t = null;        try {            t = DriverManager.getConnection("proxool.xml-test");        } catch (SQLException e) {            e.printStackTrace();        }        return t;    }}
?

?则 ?DBManager.getConnection() 后 即可对 数据库进行操作了。


?? ? ?4.2 嵌入模式


?? 可以按照前面的 ij命令 进行操作,注意: sql第一行改做 :

?

connect 'jdbc:derby:x:/content_admin;create=true;';

?

x:/content_admin? 为你所希望数据库数据所存在的硬盘目录。一般可在 cs模式 建立数据库后 ,将 bin/content_admin (生成的数据库目录) ?拷贝 某一目录,在程序中对其操作。

?

? 仿照 4.1 只需要更改 proxool 的数据库配置文件即可。

?

<?xml version="1.0" encoding="ISO-8859-1"?><proxool>    <alias>xml-test</alias><!--  x:/content_admin 为数据库目录所在的位置。-->?<driver-url>jdbc:derby:x:/content_admin;create=true;</driver-url>    <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>    <driver-properties>            <property name="useUnicode" value="true"/>      <property name="characterEncoding" value="GBK"/>    </driver-properties>    <maximum-connection-count>10</maximum-connection-count><maximum-active-time>999999999</maximum-active-time>    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>  </proxool>

?

热点排行