日系框架之seasar2(S2JDBC) -----使用HSQLDB
来源:互联网 发布:多乐士儿童漆 知乎 编辑:程序博客网 时间:2024/04/20 20:28
接上例:http://blog.csdn.net/kunshan_shenbin/archive/2008/08/22/2813977.aspx
src目录下追加data文件夹,并新建2个文件:
test.properties
- #HSQL Database Engine
- #Sat Nov 03 19:49:53 JST 2007
- hsqldb.script_format=0
- runtime.gc_interval=0
- sql.enforce_strict_size=false
- hsqldb.cache_size_scale=8
- readonly=false
- hsqldb.nio_data_file=true
- hsqldb.cache_scale=14
- version=1.8.0
- hsqldb.default_table_type=memory
- hsqldb.cache_file_scale=1
- hsqldb.log_size=200
- modified=yes
- hsqldb.cache_version=1.7.0
- hsqldb.original_version=1.8.0
- hsqldb.compatible_version=1.8.0
test.script
- CREATE SCHEMA PUBLIC AUTHORIZATION DBA
- CREATE USER SA PASSWORD ""
- GRANT DBA TO SA
- SET WRITE_DELAY 20
- SET SCHEMA PUBLIC
- create table department (id integer generated by default as identity, name varchar(255) not null,version integer not null)
- create table address (id integer generated by default as identity, name varchar(255) not null, version integer not null)
- create table employee (id integer generated by default as identity,name varchar(255) not null,job_type integer not null,salary integer,department_id integer,address_id integer,version integer not null,constraint fk_department FOREIGN KEY(DEPARTMENT_ID) REFERENCES DEPARTMENT(ID),constraint fk_address FOREIGN KEY(ADDRESS_ID) REFERENCES ADDRESS(ID))
- INSERT INTO DEPARTMENT VALUES(1,'ACCOUNTING',1)
- INSERT INTO DEPARTMENT VALUES(2,'RESEARCH',1)
- INSERT INTO DEPARTMENT VALUES(3,'SALES',1)
- INSERT INTO DEPARTMENT VALUES(4,'OPERATIONS',1)
- INSERT INTO ADDRESS VALUES(1,'STREET 1',1)
- INSERT INTO ADDRESS VALUES(2,'STREET 2',1)
- INSERT INTO ADDRESS VALUES(3,'STREET 3',1)
- INSERT INTO ADDRESS VALUES(4,'STREET 4',1)
- INSERT INTO ADDRESS VALUES(5,'STREET 5',1)
- INSERT INTO ADDRESS VALUES(6,'STREET 6',1)
- INSERT INTO ADDRESS VALUES(7,'STREET 7',1)
- INSERT INTO ADDRESS VALUES(8,'STREET 8',1)
- INSERT INTO ADDRESS VALUES(9,'STREET 9',1)
- INSERT INTO ADDRESS VALUES(10,'STREET 10',1)
- INSERT INTO ADDRESS VALUES(11,'STREET 11',1)
- INSERT INTO ADDRESS VALUES(12,'STREET 12',1)
- INSERT INTO ADDRESS VALUES(13,'STREET 13',1)
- INSERT INTO ADDRESS VALUES(14,'STREET 14',1)
- INSERT INTO EMPLOYEE VALUES(1,'ALLEN',1,1600,3,1,1)
- INSERT INTO EMPLOYEE VALUES(2,'WARD',1,1250,3,2,1)
- INSERT INTO EMPLOYEE VALUES(3,'JONES',2,2975,2,3,1)
- INSERT INTO EMPLOYEE VALUES(4,'MARTIN',1,1250,3,4,1)
- INSERT INTO EMPLOYEE VALUES(5,'BLAKE',2,2850,3,5,1)
- INSERT INTO EMPLOYEE VALUES(6,'CLARK',2,2450,1,6,1)
- INSERT INTO EMPLOYEE VALUES(7,'SCOTT',3,3000,2,7,1)
- INSERT INTO EMPLOYEE VALUES(8,'KING',4,5000,1,8,1)
- INSERT INTO EMPLOYEE VALUES(9,'TURNER',1,1500,3,9,1)
- INSERT INTO EMPLOYEE VALUES(10,'ADAMS',0,1100,2,10,1)
- INSERT INTO EMPLOYEE VALUES(11,'JAMES',0,950,3,11,1)
- INSERT INTO EMPLOYEE VALUES(12,'FORD',3,3000,2,12,1)
- INSERT INTO EMPLOYEE VALUES(13,'MILLER',0,1300,1,13,1)
- INSERT INTO EMPLOYEE VALUES(14,'SMITH',0,800,2,14,1)
更改配置文件:
jdbc.dicon
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components21.dtd">
- <components namespace="jdbc">
- <include path="jta.dicon"/>
- <!-- for MYSQLDB -->
- <!--
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "com.mysql.jdbc.Driver"
- </property>
- <property name="URL">
- "jdbc:mysql://localhost:3306/seasar2"
- </property>
- <property name="user">"root"</property>
- <property name="password">"root"</property>
- </component>
- -->
- <!-- for HSQLDB -->
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "org.hsqldb.jdbcDriver"
- </property>
- <property name="URL">
- "jdbc:hsqldb:file:"
- + @org.seasar.framework.util.ResourceUtil@getBuildDir(@com.s2jdbc.entity.Employee@class).getCanonicalPath()
- + "/data/test"
- </property>
- <property name="user">"sa"</property>
- <property name="password">""</property>
- </component>
- <!-- for H2 -->
- <!--
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "org.h2.Driver"
- </property>
- <property name="URL">
- "jdbc:h2:file:"
- + @org.seasar.framework.util.ResourceUtil@getBuildDir(@examples.entity.JdbcManagerTest@class).getCanonicalPath()
- + "/data/demo;DB_CLOSE_ON_EXIT=FALSE"
- </property>
- <property name="user">"sa"</property>
- <property name="password"></property>
- </component>
- -->
- <!-- for Oracle -->
- <!--
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "oracle.jdbc.driver.OracleDriver"
- </property>
- <property name="URL">
- "jdbc:oracle:thin:@xxx:1521:xxx"
- </property>
- <property name="user">"xxx"</property>
- <property name="password">"xxx"</property>
- </component>
- -->
- <!-- for PostgreSQL -->
- <!--
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "org.postgresql.Driver"
- </property>
- <property name="URL">
- "jdbc:postgresql://localhost/TEST"
- </property>
- <property name="user">"xxxx"</property>
- <property name="password">"xxxx"</property>
- </component>
- -->
- <!-- MySQL
- - MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に,
- 以下の接続パラメータを追加で指定してください.
- useUnicode=true
- characterEncoding=[MySQLのエンコーディングに対応した
- Javaのエンコーディング名]
- 例:"jdbc:mysql://localhost:3306/test?useUnicode=true" +
- "&characterEncoding=Windows-31J"
- - MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には,
- URL指定の後に,以下の接続パラメータを追加で指定してください.
- characterEncoding=UTF-8またはWindows-31J
- characterSetResults=UTF-8またはWindows-31J
- 例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" +
- "&characterSetResults=UTF-8"
- この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が
- 行なわれるため,ユーザー定義外字などの一部の文字が化けます.
- この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の
- 変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が
- 行なわれるようになります.この結果,文字化けを防げます.
- なおJIS X 0212(補助漢字)を使用する場合は,Windows-31Jではなく
- UTF-8を指定する必要があります.
- - 上記以外の場合は,my.cnfでdefault-character-setの設定を適切に
- (cp932やutf8など.デフォルトのlatin1は不可)行なっていれば,
- 文字化けは防げます.
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "com.mysql.jdbc.Driver"
- </property>
- <property name="URL">
- "jdbc:mysql://localhost:3306/test"
- </property>
- <property name="user">"xxx"</property>
- <property name="password">"xxx"</property>
- </component>
- -->
- <!-- for SQLServer -->
- <!--
- <component name="xaDataSource"
- class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "net.sourceforge.jtds.jdbc.Driver"
- </property>
- <property name="URL">
- "jdbc:jtds:sqlserver://localhost/TEST;instance=SQLEXPRESS"
- </property>
- <property name="user">"xxxx"</property>
- <property name="password">"xxxx"</property>
- </component>
- -->
- <component name="connectionPool"
- class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
- <property name="timeout">600</property>
- <property name="maxPoolSize">10</property>
- <property name="allowLocalTx">true</property>
- <destroyMethod name="close"/>
- </component>
- <component name="DataSource"
- class="org.seasar.extension.dbcp.impl.DataSourceImpl"
- />
- <!-- from JNDI -->
- <!--
- <component name="DataSource"
- class="javax.sql.DataSource">
- @org.seasar.extension.j2ee.JndiResourceLocator@lookup("java:comp/env/jdbc/DataSource")
- </component>
- -->
- <!--
- <component name="dataSource"
- class="org.seasar.extension.datasource.impl.SelectableDataSourceProxy"/>
- -->
- </components>
s2jdbc.dicon(更改dialect)
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
- "http://www.seasar.org/dtd/components24.dtd">
- <components>
- <include path="jdbc.dicon"/>
- <include path="s2jdbc-internal.dicon"/>
- <component name="jdbcManager" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
- <property name="maxRows">0</property>
- <property name="fetchSize">0</property>
- <property name="queryTimeout">0</property>
- <property name="dialect">hsqlDialect</property>
- <!--
- <property name="dialect">db2390Dialect</property>
- <property name="dialect">db2400Dialect</property>
- <property name="dialect">db2Dialect</property>
- <property name="dialect">derbyDialect</property>
- <property name="dialect">firebirdDialect</property>
- <property name="dialect">h2Dialect</property>
- <property name="dialect">hsqlDialect</property>
- <property name="dialect">interbaseDialect</property>
- <property name="dialect">maxdbDialect</property>
- <property name="dialect">mssql2005Dialect</property>
- <property name="dialect">mssqlDialect</property>
- <property name="dialect">mysqlDialect</property>
- <property name="dialect">oracleDialect</property>
- <property name="dialect">postgreDialect</property>
- <property name="dialect">standardDialect</property>
- <property name="dialect">sybaseDialect</property>
- -->
- </component>
- </components>
确保工程中已经加载hsqldb的jdbc驱动。
完毕。
- 日系框架之seasar2(S2JDBC) -----使用HSQLDB
- 日系框架之seasar2(S2JDBC)
- 日系框架之seasar2(S2DAO)
- 日系框架之seasar2(S2Hibernate3)
- 日系框架之seasar2(S2JPA之Hibernate3)
- 日系框架之seasar2(S2JPA之TopLink)
- 日系框架之seasar2(S2JPA之OpenJPA)
- 日系框架之seasar2(S2JSF)
- 日系框架之seasar2(SAStruts)
- 日系框架之seasar2(S2Struts)
- 日系框架之Seasar2之SQL注释大坑-yellowcong
- 日系框架之seasar2(Teeda:S2JSF的孪生兄弟)
- 日系框架之seasar2(Teeda支援HTML模板)
- 日系框架之seasar2(SAStruts)升级篇
- SeaSar2之struts2+ seasar2 + s2dao框架整合-yellowcong
- 开源框架 Seasar2
- 开源框架 Seasar2
- Seasar2 框架学习笔记
- tomcat配置dbcp数据库连接池及其碰到的错误
- 18个助你成功的经典故事(七)
- Oracle数据库在线备份相关原理描述
- 18个助你成功的经典故事(六)
- 18个助你成功的经典故事(五)
- 日系框架之seasar2(S2JDBC) -----使用HSQLDB
- 处理日期的工具类
- 2008.08.24 晴转多云
- 18个助你成功的经典故事(四)
- 18个助你成功的经典故事(三)
- Linux下dd命令的使用
- 18个助你成功的经典故事(二)
- 2008北京奥运会我心中的10大话题
- 高手请这边来,关于winfrom中listview控件的拖拽问题 !