锁定老帖子 主题:Hsqldb简介和基本使用
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-14
xly_971223 写道 shaucle 写道 xly_971223 写道 问一下楼主 hsqldb的script文件是怎么生成的?手工敲的呢还是有什么工具导出的
还是用的hibernate的hbm2ddl? 手工敲....... script就是db文件 有没有更简便的方法呢 手工敲会死人的 俺的意思是不用 手工敲 不然俺就只好打.....了 ps:官方文档还不错 http://hsqldb.org/web/hsqlDocsFrame.html 而且这个源代码的确值得一看 |
|
返回顶楼 | |
发表时间: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 就行了 比较乱 凑合着看吧 |
|
返回顶楼 | |
发表时间: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 不知道有没有更好的方法 |
|
返回顶楼 | |
发表时间:2007-07-24
xly_971223 写道 抛出异常的爱 写道 hibernate可以生成数据库的表。。。但数据还要自己加
我用过用hibernate的hbm2ddl 可以生成表结构 但是添加数据不知道从那个地方加 尝试写在script文件中 不要create table 只保留insert 会报错 异常兄有没有例子 给发一个 老兄,有其他办法生成script吗? 俺用的是ibatis,数据库是oracle。想从oracle转到hsqldb。。。 自己敲的话,疯了 |
|
返回顶楼 | |
发表时间:2007-07-24
withoutmewang 写道 xly_971223 写道 抛出异常的爱 写道 hibernate可以生成数据库的表。。。但数据还要自己加
我用过用hibernate的hbm2ddl 可以生成表结构 但是添加数据不知道从那个地方加 尝试写在script文件中 不要create table 只保留insert 会报错 异常兄有没有例子 给发一个 老兄,有其他办法生成script吗? 俺用的是ibatis,数据库是oracle。想从oracle转到hsqldb。。。 自己敲的话,疯了 22楼是我找到相对简单的方法 |
|
返回顶楼 | |
发表时间:2007-07-24
从hbm生成script吗?
那ibatis就行不通了 |
|
返回顶楼 | |
发表时间:2007-07-24
还好是用powerDesigner创建表结构的
遗憾的是powerDesigner不支持创建hsqldb脚本 权宜之计,用mysql作为测试数据库了 |
|
返回顶楼 | |
发表时间:2007-07-24
还是那句话,KISS
简单的数据库找起来才好 快速了解程序的本质问题 而不是乱猜问题在哪里。 我现在的数据库“夹具”里有四条数据 我认为够了。 夹具就是一个特别的sript只有几条普通的数据; 而病态的数据还是靠程序中用commit植入的。 |
|
返回顶楼 | |
发表时间:2007-07-24
抛出异常的爱 写道 还是那句话,KISS
简单的数据库找起来才好 快速了解程序的本质问题 而不是乱猜问题在哪里。 我现在的数据库“夹具”里有四条数据 我认为够了。 夹具就是一个特别的sript只有几条普通的数据; 而病态的数据还是靠程序中用commit植入的。 异常能简单介绍下KISS吗? 我提的是和学友兄一样的问题,script如何自动生成。学友是用hbm2dll生成的,但我目前是iBatis,我想应该有其他办法的 |
|
返回顶楼 | |
发表时间:2007-07-25
表结构的话不用自己写
hsql可以根据hibernate文件生成对应的表结构。 前面所说的script是说已存在的定制数据。 比如字典,规则表结构 等基础数据。 用ibatis也可以作不过还是有必要用表生成文件的。 我用PL/SQL developer导出的表结构文件也可以生成全表。 PS:KISS是保持简单的意思,对于复杂的环境想要定位错误是非常困难的。 所以一定要保持数据的简单,以达到不粘连其它错误。 |
|
返回顶楼 | |