您的位置:首页 > 编程语言 > Java开发

浅尝derby(1)

2016-09-24 11:39 155 查看
概述

本文讲述我使用derby的实践过程;

一. 安装

1. 下载压缩包db-derby-版本号-bin.zip,解压文件到你想安装derby的目录,我指定的目录是D:\app;

2. 配置环境变量path: 在现有环境变量path的末尾添加 ;D:\app\db-derby-10.12.1.1-bin\bin; 

3. 打开cmd, 输入命令ij回车; 

出现: ij 版本 版本号(我的是10.12), 说明配置成功

二. 使用

a. 嵌入方式连接数据库,以下命令将在derby系统运行所在的jvm所在的目录下创建数据库文件夹my1stdb;

1. 打开cmd,输入ij;

2. 输入命令 : connect 'jdbc:derby:my1stdb:create=true'; 将会创建数据库my1stdb; 

输入命令show tables可以看到最后一行有我们刚刚添加的数据库my1stdb;

3. 创建表t_first:

create table t_first (

id int primary key,

name varchar(30));

4. 操作表

插入数据:insert into t_first values (1, 'ah'), (2, 'ahah'); //derby插入多条数据

查询表: select * from t_first

5. 退出数据库:输入命令 exit

b. CS(Client/Server)方式连接数据库,连接命令为 connect 'jdbc:derby://localhost:1527/my2nddb;create=true';

CS连接方式支持多个客户端的连接,嵌入模式同一时间只支持一个终端连接数据库;

c. 内存模式连接数据库, connect 'jdbc:derby:memory:my3rddb;create=true';

Derby的瑕疵:

对Oracle语法不是很支持,我发现的不支持如下:

1.  不支持dual,select (1+1) from dual 等价的方式为 values  (1+1);

2. 不支持序列的nextval, select sequenceName.nextval from dual等价的做法 next value for sequenceName;

3. 当使用mybatis框架时, 插入列表的语法不同,derby支持的方式是values (1, xx), (2, xx), (3, xx);

在mybatis中derby插入列表的方式如下:

values   

        <foreach collection='_parameter.get("1")' item="item" index="index" open="(" separator="," close=")">

(#{item.id, jdbcType=NUMERIC},

#{item.name, jdbcType=VARCHAR},

)

</foreach>

而oracle为:

insert tablename (id, name)

select * 

from 

<foreach collection='_parameter.get("1")' item="item" index="index" separator=" union all " >

select (#{item.id, jdbcType=NUMERIC},

#{item.name, jdbcType=VARCHAR},

) from dual

</foreach>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息