日系框架之seasar2(S2JDBC) -----使用HSQLDB

 接上例:http://blog.csdn.net/kunshan_shenbin/archive/2008/08/22/2813977.aspx

 

src目录下追加data文件夹,并新建2个文件:

test.properties

  1. #HSQL Database Engine
  2. #Sat Nov 03 19:49:53 JST 2007
  3. hsqldb.script_format=0
  4. runtime.gc_interval=0
  5. sql.enforce_strict_size=false
  6. hsqldb.cache_size_scale=8
  7. readonly=false
  8. hsqldb.nio_data_file=true
  9. hsqldb.cache_scale=14
  10. version=1.8.0
  11. hsqldb.default_table_type=memory
  12. hsqldb.cache_file_scale=1
  13. hsqldb.log_size=200
  14. modified=yes
  15. hsqldb.cache_version=1.7.0
  16. hsqldb.original_version=1.8.0
  17. hsqldb.compatible_version=1.8.0

test.script

  1. CREATE SCHEMA PUBLIC AUTHORIZATION DBA
  2. CREATE USER SA PASSWORD ""
  3. GRANT DBA TO SA
  4. SET WRITE_DELAY 20
  5. SET SCHEMA PUBLIC
  6. create table department (id integer generated by default as identity, name varchar(255) not null,version integer not null)
  7. create table address (id integer generated by default as identity, name varchar(255) not null, version integer not null)
  8. 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))
  9. INSERT INTO DEPARTMENT VALUES(1,'ACCOUNTING',1)
  10. INSERT INTO DEPARTMENT VALUES(2,'RESEARCH',1)
  11. INSERT INTO DEPARTMENT VALUES(3,'SALES',1)
  12. INSERT INTO DEPARTMENT VALUES(4,'OPERATIONS',1)
  13. INSERT INTO ADDRESS VALUES(1,'STREET 1',1)
  14. INSERT INTO ADDRESS VALUES(2,'STREET 2',1)
  15. INSERT INTO ADDRESS VALUES(3,'STREET 3',1)
  16. INSERT INTO ADDRESS VALUES(4,'STREET 4',1)
  17. INSERT INTO ADDRESS VALUES(5,'STREET 5',1)
  18. INSERT INTO ADDRESS VALUES(6,'STREET 6',1)
  19. INSERT INTO ADDRESS VALUES(7,'STREET 7',1)
  20. INSERT INTO ADDRESS VALUES(8,'STREET 8',1)
  21. INSERT INTO ADDRESS VALUES(9,'STREET 9',1)
  22. INSERT INTO ADDRESS VALUES(10,'STREET 10',1)
  23. INSERT INTO ADDRESS VALUES(11,'STREET 11',1)
  24. INSERT INTO ADDRESS VALUES(12,'STREET 12',1)
  25. INSERT INTO ADDRESS VALUES(13,'STREET 13',1)
  26. INSERT INTO ADDRESS VALUES(14,'STREET 14',1)
  27. INSERT INTO EMPLOYEE VALUES(1,'ALLEN',1,1600,3,1,1)
  28. INSERT INTO EMPLOYEE VALUES(2,'WARD',1,1250,3,2,1)
  29. INSERT INTO EMPLOYEE VALUES(3,'JONES',2,2975,2,3,1)
  30. INSERT INTO EMPLOYEE VALUES(4,'MARTIN',1,1250,3,4,1)
  31. INSERT INTO EMPLOYEE VALUES(5,'BLAKE',2,2850,3,5,1)
  32. INSERT INTO EMPLOYEE VALUES(6,'CLARK',2,2450,1,6,1)
  33. INSERT INTO EMPLOYEE VALUES(7,'SCOTT',3,3000,2,7,1)
  34. INSERT INTO EMPLOYEE VALUES(8,'KING',4,5000,1,8,1)
  35. INSERT INTO EMPLOYEE VALUES(9,'TURNER',1,1500,3,9,1)
  36. INSERT INTO EMPLOYEE VALUES(10,'ADAMS',0,1100,2,10,1)
  37. INSERT INTO EMPLOYEE VALUES(11,'JAMES',0,950,3,11,1)
  38. INSERT INTO EMPLOYEE VALUES(12,'FORD',3,3000,2,12,1)
  39. INSERT INTO EMPLOYEE VALUES(13,'MILLER',0,1300,1,13,1)
  40. INSERT INTO EMPLOYEE VALUES(14,'SMITH',0,800,2,14,1)

更改配置文件:

jdbc.dicon

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
  3.     "http://www.seasar.org/dtd/components21.dtd">
  4. <components namespace="jdbc">
  5.     <include path="jta.dicon"/>
  6.     <!-- for MYSQLDB -->
  7. <!--    
  8.     <component name="xaDataSource"
  9.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  10.         <property name="driverClassName">
  11.             "com.mysql.jdbc.Driver"
  12.         </property>
  13.         <property name="URL">
  14.             "jdbc:mysql://localhost:3306/seasar2"
  15.         </property>
  16.         <property name="user">"root"</property>
  17.         <property name="password">"root"</property>
  18.     </component>
  19. -->
  20.     <!-- for HSQLDB -->
  21.     <component name="xaDataSource"
  22.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  23.         <property name="driverClassName">
  24.             "org.hsqldb.jdbcDriver"
  25.         </property>
  26.         <property name="URL">
  27.             "jdbc:hsqldb:file:"
  28.                 + @org.seasar.framework.util.ResourceUtil@getBuildDir(@com.s2jdbc.entity.Employee@class).getCanonicalPath()
  29.                 + "/data/test"
  30.         </property>
  31.         <property name="user">"sa"</property>
  32.         <property name="password">""</property>
  33.     </component>
  34.         
  35.     <!-- for H2 -->
  36.     <!--
  37.     <component name="xaDataSource"
  38.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  39.         <property name="driverClassName">
  40.             "org.h2.Driver"
  41.         </property>
  42.         <property name="URL">
  43.             "jdbc:h2:file:"
  44.                 + @org.seasar.framework.util.ResourceUtil@getBuildDir(@examples.entity.JdbcManagerTest@class).getCanonicalPath()
  45.                 + "/data/demo;DB_CLOSE_ON_EXIT=FALSE"
  46.         </property>
  47.         <property name="user">"sa"</property>
  48.         <property name="password"></property>
  49.     </component>
  50.     -->
  51.     <!-- for Oracle -->
  52.     <!--
  53.     <component name="xaDataSource"
  54.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  55.         <property name="driverClassName">
  56.             "oracle.jdbc.driver.OracleDriver"
  57.         </property>
  58.         <property name="URL">
  59.             "jdbc:oracle:thin:@xxx:1521:xxx"
  60.         </property>
  61.         <property name="user">"xxx"</property>
  62.         <property name="password">"xxx"</property>
  63.     </component>
  64.     -->
  65.     <!-- for PostgreSQL -->
  66.     <!--
  67.     <component name="xaDataSource"
  68.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  69.         <property name="driverClassName">
  70.             "org.postgresql.Driver"
  71.         </property>
  72.         <property name="URL">
  73.           "jdbc:postgresql://localhost/TEST"
  74.         </property>
  75.         <property name="user">"xxxx"</property>
  76.         <property name="password">"xxxx"</property>
  77.     </component>
  78.     -->
  79.     <!-- MySQL
  80.     - MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に,
  81.         以下の接続パラメータを追加で指定してください.
  82.         useUnicode=true
  83.         characterEncoding=[MySQLのエンコーディングに対応した
  84.         Javaのエンコーディング名]
  85.         例:"jdbc:mysql://localhost:3306/test?useUnicode=true" +
  86.         "&characterEncoding=Windows-31J"
  87.         
  88.     - MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には,
  89.         URL指定の後に,以下の接続パラメータを追加で指定してください.
  90.         characterEncoding=UTF-8またはWindows-31J
  91.         characterSetResults=UTF-8またはWindows-31J
  92.         例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" +
  93.         "&characterSetResults=UTF-8"
  94.         この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が
  95.         行なわれるため,ユーザー定義外字などの一部の文字が化けます.
  96.         この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の
  97.         変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が
  98.         行なわれるようになります.この結果,文字化けを防げます.
  99.         なおJIS X 0212(補助漢字)を使用する場合は,Windows-31Jではなく
  100.         UTF-8を指定する必要があります.
  101.         
  102.     - 上記以外の場合は,my.cnfでdefault-character-setの設定を適切に
  103.         (cp932やutf8など.デフォルトのlatin1は不可)行なっていれば,
  104.         文字化けは防げます.
  105.     <component name="xaDataSource"
  106.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  107.         <property name="driverClassName">
  108.             "com.mysql.jdbc.Driver"
  109.         </property>
  110.         <property name="URL">
  111.             "jdbc:mysql://localhost:3306/test"
  112.         </property>
  113.         <property name="user">"xxx"</property>
  114.         <property name="password">"xxx"</property>
  115.     </component>
  116.     -->
  117.     <!-- for SQLServer -->
  118.     <!--
  119.     <component name="xaDataSource"
  120.         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  121.         <property name="driverClassName">
  122.             "net.sourceforge.jtds.jdbc.Driver"
  123.         </property>
  124.         <property name="URL">
  125.             "jdbc:jtds:sqlserver://localhost/TEST;instance=SQLEXPRESS"
  126.         </property>
  127.         <property name="user">"xxxx"</property>
  128.         <property name="password">"xxxx"</property>
  129.     </component>
  130.     -->
  131.     <component name="connectionPool"
  132.         class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
  133.         <property name="timeout">600</property>
  134.         <property name="maxPoolSize">10</property>
  135.         <property name="allowLocalTx">true</property>
  136.         <destroyMethod name="close"/>
  137.     </component>
  138.     <component name="DataSource"
  139.         class="org.seasar.extension.dbcp.impl.DataSourceImpl"
  140.     />
  141.     <!-- from JNDI -->
  142.     <!--
  143.     <component name="DataSource"
  144.         class="javax.sql.DataSource">
  145.         @org.seasar.extension.j2ee.JndiResourceLocator@lookup("java:comp/env/jdbc/DataSource")
  146.     </component>
  147.     -->
  148.     <!--
  149.     <component name="dataSource"
  150.         class="org.seasar.extension.datasource.impl.SelectableDataSourceProxy"/>
  151.     -->
  152. </components>

s2jdbc.dicon(更改dialect)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
  3.     "http://www.seasar.org/dtd/components24.dtd">
  4. <components>
  5.     <include path="jdbc.dicon"/>
  6.     <include path="s2jdbc-internal.dicon"/>
  7.     <component name="jdbcManager" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
  8.         <property name="maxRows">0</property>
  9.         <property name="fetchSize">0</property>
  10.         <property name="queryTimeout">0</property>
  11.         <property name="dialect">hsqlDialect</property>
  12.         
  13.         <!--
  14.         <property name="dialect">db2390Dialect</property>
  15.         <property name="dialect">db2400Dialect</property>
  16.         <property name="dialect">db2Dialect</property>
  17.         <property name="dialect">derbyDialect</property>
  18.         <property name="dialect">firebirdDialect</property>
  19.         <property name="dialect">h2Dialect</property>
  20.         <property name="dialect">hsqlDialect</property>
  21.         <property name="dialect">interbaseDialect</property>
  22.         <property name="dialect">maxdbDialect</property>
  23.         <property name="dialect">mssql2005Dialect</property>
  24.         <property name="dialect">mssqlDialect</property>
  25.         <property name="dialect">mysqlDialect</property>
  26.         <property name="dialect">oracleDialect</property>
  27.         <property name="dialect">postgreDialect</property>
  28.         <property name="dialect">standardDialect</property>
  29.         <property name="dialect">sybaseDialect</property>
  30.         -->
  31.     </component>
  32. </components>

确保工程中已经加载hsqldb的jdbc驱动。

完毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值