SAStruts(Super Agile Struts)あれこれ
S2JDBCでデータベースと戯れましょう。の準備です。
sastruts1.0.4-sp1から、データベースアクセスのサンプルがチュートリアルから無くなってしまったので、「S2JDBCでデータベースと戯れましょう。(ベースはチュートリアルです)」のベースが無い状態になっていまいました。
なので、このベースを構築する手順を記載します。
すると、以下のようなウインドウが表示されます。
ので、以下のように設定を行い、[OK]ボタンをクリックしましょう。この時点でc:\\hsqldbフォルダが生成されます。
すると、以下のような管理画面が表示されます。
ここで、以下のスクリプトを管理画面の[Execute]ボタン左のテキストエリアに貼り付けましょう。
そして、[Execute]ボタンをクリックしましょう。その後、管理画面のメニューから[view]→[Refresh Tree]を選択すると、以下のように作成したテーブルがツリーに表示されるようになります。
データベースの作成は終了です。管理画面を終了させましょう。
この辺の操作は、MySQLからDoltengでEntityを自動生成しましょうの「2.MySQL Connector/J (JDBCドライバ)を配置」が参考になると思います。
なので、このベースを構築する手順を記載します。
目次
- HSQLDBのダウンロード
- HSQLDBのデータベース作成
- チュートリアルプロジェクトにHSQLDBのjarファイルを追加
- 設定ファイル
- 各種クラスファイルの作成
内容
HSQLDBのダウンロード
SourceForge.NetのHSQL Database Engineから、以下のファイルをダウンロードしましょう(バージョンが適宜読み替えて下さい)。hsqldb_1_8_0_10.zipともあれ解凍しましょう。すると、hsqldbフォルダが作成されます。この中のhsqldb/lib/hsqldb.jarにHSQLDB本体、JDBCドライバや管理ツールが同梱されています。になります。
HSQLDBのデータベース作成
ここでは、簡便なIn-Process(Standalone)モードでデータベースを作成します。 先ずは、データベース管理ツールを起動しましょう。MSDOSプロンプトで以下のコマンドを実行します。java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
すると、以下のようなウインドウが表示されます。
ので、以下のように設定を行い、[OK]ボタンをクリックしましょう。この時点でc:\\hsqldbフォルダが生成されます。
すると、以下のような管理画面が表示されます。
ここで、以下のスクリプトを管理画面の[Execute]ボタン左のテキストエリアに貼り付けましょう。
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, 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);
そして、[Execute]ボタンをクリックしましょう。その後、管理画面のメニューから[view]→[Refresh Tree]を選択すると、以下のように作成したテーブルがツリーに表示されるようになります。
データベースの作成は終了です。管理画面を終了させましょう。
チュートリアルプロジェクトにHSQLDBのjarファイルを追加
ダウンロードしたhsqldb.jarを、"sa-struts-tutorial\src\main\webapp\WEB-INF\lib"フォルダーにコピーしましょう。そして、チュートリアルプロジェクトのプロパティから、hsqldb.jarを追加しましょう。この辺の操作は、MySQLからDoltengでEntityを自動生成しましょうの「2.MySQL Connector/J (JDBCドライバ)を配置」が参考になると思います。
設定ファイル
チュートリアルに同梱されている設定ファイルの中で、以下のファイルを変更します。・sa-struts-tutorial\src\main\resources\app.dicon ・sa-struts-tutorial\src\main\resources\jdbc.dicon
app.dicon
s2jdbc.diconを読み込むようにコメントオフを解除します。こう↓なります。
<?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="convention.dicon"/>
<include path="aop.dicon"/>
<include path="j2ee.dicon"/>
<include path="s2jdbc.dicon"/>
<component name="actionMessagesThrowsInterceptor" class="org.seasar.struts.interceptor.ActionMessagesThrowsInterceptor"/>
</components>
jdbc.dicon
HSQLDBへの接続情報の設定と、コネクションプールに関する設定のコメントオフを解除しましょう。また、接続情報のURL属性中のデータベースのファイルパスも変更します。こう↓なります。
<?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 HSQLDB -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"org.hsqldb.jdbcDriver"
</property>
<property name="URL">
"jdbc:hsqldb:file:c:/hsqldb/test"
</property>
<property name="user">"sa"</property>
<property name="password">""</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"
/>
</components>
各種クラスファイルのコピー
以下のファイルを追加します。SAStrutsのダウンロードページからsa-struts-tutorial-1.0.4.zipをダウンロードして解凍し、以下のファイルを所定の位置にコピーしましょう。・sa-struts-tutorial\src\main\java\tutorial\action\EmployeeAction.java ・sa-struts-tutorial\src\main\java\tutorial\form\EmployeeForm.java ・sa-struts-tutorial\src\main\java\tutorial\entity\Address.java ・sa-struts-tutorial\src\main\java\tutorial\entity\Department.java ・sa-struts-tutorial\src\main\java\tutorial\entity\Employee.java ・sa-struts-tutorial\src\main\java\tutorial\entity\JobType.java ・sa-struts-tutorial\src\main\java\tutorial\service\AbstractService.java ・sa-struts-tutorial\src\main\java\tutorial\service\DepartmentService.java ・sa-struts-tutorial\src\main\java\tutorial\service\EmployeeService.java ・sa-struts-tutorial\src\main\webapp\WEB-INF\view\employee\confirm.jsp ・sa-struts-tutorial\src\main\webapp\WEB-INF\view\employee\edit.jsp ・sa-struts-tutorial\src\main\webapp\WEB-INF\view\employee\index.jsp
アップロードしたファイル
- tomcat_eclipse.jpg
- tomcat_eclipse2.jpg
- after_import.jpg
- start_tomcat.jpg
- import_1.jpg
- create_db_user.jpg
- create_table.jpg
- employee_mod1.jpg
- er1.jpg
- joincolumnser.jpg
- employee_add1.jpg
- employee_add2.jpg
- employee_add3.jpg
- employee_add4.jpg
- employee_del1.jpg
- employee_del2.jpg
- employee_del3.jpg
- employee_token1.jpg
- employee_token2.jpg
- employee_token3.jpg
- employee_page1.jpg
- index_page.jpg
- minus_action_1.jpg
- minus_action_2.jpg
- employee_hsqldb1.jpg
- emp_blk_add1.jpg
- emp_blk_add2.jpg
- emp_blk_add3.jpg
- emp_blk_add4.jpg
- emp_blk_add5.jpg
- hello_project1.jpg
- hello_project2.jpg
- hello_project3.jpg
- hello_project4.jpg
- hello_project5.jpg
- tiles1_1.jpg
- tiles1_2.jpg
- tiles1_3.jpg
- tiles1_4.jpg
- tutorial_db_er.jpg
- mysql_entity1.jpg
- mysql_entity2.jpg
- mysql_entity3.jpg
- mysql_entity4.jpg
- mysql_entity5.jpg
- mysql_entity6.jpg
- mysql_entity7.jpg
- mysql_entity8.jpg
- mysql_entity9.jpg
- mysql_entity10.jpg
- download_file1.jpg
- up.gif
- ajax_pattern1_1.jpg
- ajax_pattern1_2.jpg
- ajax_pattern2_2.jpg
- ajax_pattern2_1.jpg
- emp_blk_upd1.jpg
- emp_blk_upd2.jpg
- emp_blk_upd3.jpg
- emp_blk_upd4.jpg
- emp_blk_upd5.jpg
- ajax_json_1.jpg
- ajax_json_2.jpg
- ajax_json_3.jpg
- ajax_json_4.jpg
- ajax_json_5.jpg
- gen_eclipse1_1.jpg
- gen_eclipse1_2.jpg
- gen_eclipse1_3.jpg
- gen_eclipse1_4.jpg
- gen_eclipse1_5.jpg
- blk_add_vali_1.jpg
- blk_add_vali_2.jpg
- blk_add_vali_3.jpg
- blk_add_vali_4.jpg
- super1_1__1.jpg
- super1_1__2.jpg
- super1_1__0.jpg
- super1_1__3.jpg
- gen_fileheader1.jpg
- super1_1__4.jpg
- supersample2-1_1.jpg
- supersample2-1_2.jpg
- supersample2-1_3.jpg
- supersample2-1_4.jpg
- previewimage.jpg
- previewimage2.jpg
- supersample2-1_5.jpg
- supersample2-2_1.jpg
- supersample2-2_4.jpg
- supersample2-2_2.jpg
- supersample2-2_3.jpg
- supersample2-2_5.jpg
- supersample2-4_1.jpg
- supersample2-4_2.jpg
- supersample2-4_3.jpg
- supersample2-4_4.jpg
- supersample2-4_5.jpg
- supersample2-5_1.jpg
- supersample2-5_2.jpg
- supersample2-5_3.jpg
- supersample2-5_4.jpg
- supersample2-5_5.jpg
- supersample2-5_6.jpg
- supersample2-6_1.jpg
- supersample2-6_2.jpg
- supersample2-6_4.jpg
- supersample2-6_5.jpg
- supersample2-6_3.jpg
- supersample2-7_1.jpg
- supersample2-7_2.jpg
- blk_upd_reset_1.jpg
- blk_upd_reset_2.jpg
- blk_upd_reset_3.jpg
- blk_upd_reset_4.jpg
- blk_upd_reset_5.jpg
- supersample1-6_1.jpg
- supersample1-6_2.jpg
- supersample1-6_3.jpg
- supersample1-6_4.jpg
- supersample1-6_5.jpg
- supersample1-6_6.jpg
- supersample1-7_1.jpg
- supersample1-7_2.jpg
- supersample1-7_3.jpg
- supersample1-7_4.jpg
- supersample1-7_5.jpg
- supersample1-7_6.jpg
- supersample1-4_1.jpg
- supersample1-4_2.jpg
- supersample1-4_3.jpg
- supersample1-4_4.jpg
- supersample1-4_6.jpg
- supersample1-4_7.jpg
- supersample1-4_5.jpg
- pre_db_sample1.jpg
- pre_db_sample2.jpg
- pre_db_sample3.jpg
- pre_db_sample4.jpg
- pre_db_sample5.jpg
- supersample1-8_1.jpg
- supersample1-8_2.jpg
- supersample1-8_3.jpg
- supersample1-8_4.jpg
- supersample1-8_6.jpg
- supersample1-8_5.jpg
- more_s2jdbc_1.jpg
- more_s2jdbc_2.jpg
- more_s2jdbc_3.jpg
- more_s2jdbc_4.jpg
- t_safe_search1_1.jpg
- t_safe_search1_2.jpg
- t_safe_search2_1.jpg
- t_safe_search2_2.jpg
- project_websrv_1.jpg
- project_websrv_3.jpg
- ws_1address_1.jpg
- flexbuilder_1.jpg
- flexbuilder_2.jpg
- flexbuilder_3.jpg
- flexbuilder_4.jpg
- flexbuilder_5.jpg
- flexbuilder_6.jpg
- flexbuilder_7.jpg
- flexbuilder_8.jpg
- flexbuilder_9.jpg
- flexbuilder_10.jpg
- flexbuilder_11.jpg
- flexbuilder_12.jpg
- flexbuilder_13.jpg
- project_flex_1.jpg
- project_flex_2.jpg
- project_flex_3.jpg
- project_flex_4.jpg
- project_flex_5.jpg
- project_flex_8.jpg
- project_flex_7.jpg
- project_flex_6.jpg
- flex_emp_list_1.jpg
- flex_emp_list_2.jpg
- flex_emp_lst_e_1.jpg
- flex_emp_add_1.jpg
- flex_emp_add_2.jpg
- flex_emp_add_3.jpg
- flex_emp_add2_1.jpg
- flex_emp_add2_2.jpg
- flex_emp_add2_3.jpg
- flex_upload_1.jpg
- flex_upload_2.jpg
- tcpmon_1.jpg
- tcpmon_2.jpg
- tcpmon_3.jpg
- tcpmon_4.jpg
- flex_upload2_1.jpg
- flex_upload2_2.jpg
- flex_upload2_3.jpg
- flex_emp_del_1.jpg
- flex_emp_del_2.jpg
- flex_emp_del_3.jpg
- flex_emp_spr_1.jpg
- flex_emp_spr_2.jpg
- flex_emp_spr_3.jpg
- flex_grid_chk1_1.jpg
- flex_grid_chk1_2.jpg
- flex_grid_chk1_3.jpg
- flex_bulk_del_1.jpg
- flex_bulk_del_2.jpg
- flex_bulk_del_3.jpg
- flex_dd_grid1_1.jpg
- flex_dd_grid1_2.jpg
- flex_dd_grid1_3.jpg
- blazeds_setup_1.jpg
- s2blaze_proj_1.jpg
- s2blaze_proj_2.jpg
- s2blaze_proj_3.jpg
- s2blaze_proj_4.jpg
- s2blaze_proj_5.jpg
- s2blaze_proj_6.jpg
- s2blaze_proj_7.jpg
- s2blaze_proj_8.jpg
- s2blaze_proj_9.jpg
- blaze_emplist1_1.jpg
- blaze_emplist2_1.jpg
- blaze_emplist2_2.jpg
- blaze_emp_add_1.jpg
- blaze_emp_add_2.jpg
- blaze_emp_add_3.jpg
- blaze_fms1_1.jpg
- blaze_fms1_2.jpg
- blaze_fms2_1.jpg
- project_batch_1.jpg
- supersample2-3_1.jpg
- supersample2-3_2.jpg
- supersample2-3_3.jpg
- supersample2-8_1.jpg
- supersample2-8_2.jpg
















