论坛首页 Java企业应用论坛

Hsqldb简介和基本使用

浏览 81462 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-05-14  
xly_971223 写道
shaucle 写道
xly_971223 写道
问一下楼主 hsqldb的script文件是怎么生成的?手工敲的呢还是有什么工具导出的
还是用的hibernate的hbm2ddl?


手工敲.......

script就是db文件

有没有更简便的方法呢 手工敲会死人的


俺的意思是不用 手工敲
不然俺就只好打.....了


ps:官方文档还不错
http://hsqldb.org/web/hsqlDocsFrame.html
而且这个源代码的确值得一看
0 请登录后投票
   发表时间:2007-05-14  
有一个相对简便的方法 先配置成hibernate.hbm2ddl.auto=create-drop 映射文件在加载的时候会输出如下信息
2007-05-14 22:40:31,520 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] - Unsuccessful: create table DIGITALSTORE.CATEGORY (CATEGORY_ID bigint not null, CATEGORY_NAME varchar(20) not null, PARENT_ID bigint not null, DESCRIPTION varchar(100), primary key (CATEGORY_ID))
2007-05-14 22:40:31,540 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] - The database is in read only mode in statement [create]
2007-05-14 22:40:31,540 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] - Unsuccessful: create table DIGITALSTORE.CUSTOMER (CUSTOM_ID bigint not null, CUSTOM_NAME varchar(16), PASSWORD varchar(32) not null, EMAIL varchar(64), NICKNAME varchar(16) not null, SEX varchar(1), ADDRESS varchar(256), PHONE varchar(16), POSTALCODE varchar(8), REGISTER_DATE varchar(255), LAST_LOGIN varchar(255), primary key (CUSTOM_ID), unique (EMAIL))
2007-05-14 22:40:31,540 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] - The database is in read only mode in statement [create]
2007-05-14 22:40:31,540 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] - Unsuccessful: create table DIGITALSTORE.CUSTOM_ORDER (ORDER_ID bigint not null, CUSTOM_ID bigint, RECEIVER_NAME varchar(16), RECEIVER_ADDR varchar(256), RECEIVER_PHONE varchar(16), RECEIVER_POSTALCODE varchar(8), RECEIVER_EMAIL varchar(64), ORDER_STATE varchar(1), ORDER_DATE varchar(255), INVOICE_INFO varchar(1024), PAYMENT_WAY varchar(1), primary key (ORDER_ID))

拷贝这些create语句到script文件 然后修改一下就能用了
写完之后删除hibernate.hbm2ddl.auto=create-drop 就行了

比较乱 凑合着看吧
0 请登录后投票
   发表时间:2007-05-14  
又遇到问题了 oracle的sequence在hsqldb有没有对应的东东
如下:
<hibernate-mapping>
    <class name="com.ecc.domain.Category" table="CATEGORY" schema="DIGITALSTORE">
        <id name="categoryId" type="long">
            <column name="CATEGORY_ID" precision="5" scale="0" />
            <generator class="sequence" >
                <param name="sequence">Category_seq</param>            
            </generator>
        </id>
        <property name="categoryName" type="string">
            <column name="CATEGORY_NAME" length="20" not-null="true" />
        </property>
        <property name="parentId" type="long">
            <column name="PARENT_ID" precision="5" scale="0" not-null="true" />
        </property>
        <property name="description" type="string">
            <column name="DESCRIPTION" length="100" />
        </property>
        <set name="products" inverse="true">
            <key>
                <column name="CATEGORY_ID" precision="5" scale="0" />
            </key>
            <one-to-many class="com.ecc.domain.Product" />
        </set>
    </class>
</hibernate-mapping>

这个Category_seq在 hsqldb中怎么处理?hsqldb应该是不支持sequence吧
我是用的hibernae的increament 等到上线的时候在改成Category_seq
不知道有没有更好的方法
0 请登录后投票
   发表时间:2007-07-24  
xly_971223 写道
抛出异常的爱 写道
hibernate可以生成数据库的表。。。但数据还要自己加

我用过用hibernate的hbm2ddl 可以生成表结构
但是添加数据不知道从那个地方加 
尝试写在script文件中 不要create table 只保留insert 会报错
异常兄有没有例子 给发一个


老兄,有其他办法生成script吗?
俺用的是ibatis,数据库是oracle。想从oracle转到hsqldb。。。
自己敲的话,疯了
0 请登录后投票
   发表时间:2007-07-24  
withoutmewang 写道
xly_971223 写道
抛出异常的爱 写道
hibernate可以生成数据库的表。。。但数据还要自己加

我用过用hibernate的hbm2ddl 可以生成表结构
但是添加数据不知道从那个地方加 
尝试写在script文件中 不要create table 只保留insert 会报错
异常兄有没有例子 给发一个


老兄,有其他办法生成script吗?
俺用的是ibatis,数据库是oracle。想从oracle转到hsqldb。。。
自己敲的话,疯了

22楼是我找到相对简单的方法
0 请登录后投票
   发表时间:2007-07-24  
从hbm生成script吗?
那ibatis就行不通了
0 请登录后投票
   发表时间:2007-07-24  
还好是用powerDesigner创建表结构的
遗憾的是powerDesigner不支持创建hsqldb脚本

权宜之计,用mysql作为测试数据库了
0 请登录后投票
   发表时间:2007-07-24  
还是那句话,KISS
简单的数据库找起来才好
快速了解程序的本质问题
而不是乱猜问题在哪里。

我现在的数据库“夹具”里有四条数据
我认为够了。
夹具就是一个特别的sript只有几条普通的数据;
而病态的数据还是靠程序中用commit植入的。
0 请登录后投票
   发表时间:2007-07-24  
抛出异常的爱 写道
还是那句话,KISS
简单的数据库找起来才好
快速了解程序的本质问题
而不是乱猜问题在哪里。

我现在的数据库“夹具”里有四条数据
我认为够了。
夹具就是一个特别的sript只有几条普通的数据;
而病态的数据还是靠程序中用commit植入的。


异常能简单介绍下KISS吗?
我提的是和学友兄一样的问题,script如何自动生成。学友是用hbm2dll生成的,但我目前是iBatis,我想应该有其他办法的
0 请登录后投票
   发表时间:2007-07-25  
表结构的话不用自己写
hsql可以根据hibernate文件生成对应的表结构。
前面所说的script是说已存在的定制数据。
比如字典,规则表结构 等基础数据。

用ibatis也可以作不过还是有必要用表生成文件的。
我用PL/SQL developer导出的表结构文件也可以生成全表。

PS:KISS是保持简单的意思,对于复杂的环境想要定位错误是非常困难的。
所以一定要保持数据的简单,以达到不粘连其它错误。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics